当我尝试输入代码的最后一部分时,我得到错误消息"错误代码: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
表,我认为您可能需要向products
和customers
表添加行。
以下是如何向products
和customers
表添加行的可能示例:
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
值;也许像这样,如果您为上面每个查询的id
s返回1
:
insert into orders (product_id, customer_id, order_time) values (1, 1, '2021-01-01 00:00:00');