尝试粘贴值时错误1452

  • 本文关键字:错误 1452 sql
  • 更新时间 :
  • 英文 :


当我尝试输入代码的最后一部分时,我得到错误消息"错误代码:1452不能添加或更新子行,外键约束失败">

CREATE TABLE products (
id int auto_increment primary key,
name varchar (30),
price decimal(3,2),
coffee_origin varchar (30)
);
CREATE TABLE customers (

id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(30),
last_name VARCHAR (30),
gender ENUM ('M','F'),
phone_number VARCHAR(11)
);
CREATE TABLE orders(
id INT AUTO_INCREMENT PRIMARY KEY,
product_id INT,
customer_id INT,
order_time DATETIME,
FOREIGN KEY (product_id) REFERENCES products(id),
FOREIGN KEY (customer_id) REFERENCES customers(id)
);
INSERT INTO orders (product_id,customer_id,order_time) VALUES (1,1,'2017-01-01 08-02-11');

为了能够将您的值插入orders表,我认为您可能需要向productscustomers表添加行。

以下是如何向productscustomers表添加行的可能示例:

insert into products (name, price, coffee_origin) values ('Dark Blend', 4.99, 'Brazil');
insert into customers (first_name, last_name, gender, phone_number) values ('First Name', 'Last Name', 'M', '123-456-7890');

然后,您可以通过运行以下查询找到您可能需要用于最终insert操作的id值:

select id from products where name = 'Dark Blend';
select id from customers where phone_number = '123-456-7890';

最后,您可以尝试再次运行insert操作,但这次使用上述查询的id值;也许像这样,如果您为上面每个查询的ids返回1:

insert into orders (product_id, customer_id, order_time) values (1, 1, '2021-01-01 00:00:00');

最新更新