当前位置: 首页 > 知识库问答 >
问题:

尝试into语句错误[重复]

陶泳
2023-03-14

尝试执行简单的insert into语句,但出现外键关系错误。

insert into orders (userId, orderDate, shippingDate)
values('xyz123', now(), now()); 

我收到的错误是“无法添加或更新子行:外键约束失败('example_1010命令,约束orders_ibfk1外键(用户 ID) 引用用户用户 ID')”

我想我需要使用一个“in子句”来绕过约束,但我不认为我使用它是正确的。

insert into orders (userId, orderDate, shippingDate)
values('xyz123', now(), now())
in (select userId from users); 

共有1个答案

徐欣德
2023-03-14

只需禁用外键

SET FOREIGN_KEY_CHECKS=0;

你不需要添加任何其他东西。你的查询很完美

insert into orders (userId, orderDate, shippingDate)
values('xyz123', now(), now());

之后再次启用外键

SET FOREIGN_KEY_CHECKS=1;

您应该在您的父表(用户)中添加该user_id,如@德鲁所建议的

 类似资料:
  • 通过 SQL,您可以从一个表复制信息到另一个表。 SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。 SQL SELECT INTO 语句 SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。 MySQL 数据库不支持 SELECT ... INTO 语句,但支持 INSERT INTO ... SELECT 。 当然你可以使用以下语句来拷贝表结构

  • INSERT INTO 语句用于向表中插入新记录。 SQL INSERT INTO 语句 INSERT INTO 语句用于向表中插入新记录。 SQL INSERT INTO 语法 INSERT INTO 语句可以有两种编写形式。 第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:INSERT INTO table_name VALUES (NULL,value2,value3,...);

  • 鉴于: 我想尝试,并重试,连接到服务器3次才放弃。 我可以把整个try/catch放在一个循环中,但是这是否符合Java的“最佳实践”。从我对该主题的回忆来看,这将是对语句的误用。再说一次,我可能完全错了。你怎么认为?

  • 我不知道为什么try-catch语句不起作用: 这是代码,我只是想做InputMismatchException,以防有人输入无效的东西,如283479234729472983472984723或字符串等。 但是当我运行它时,我输入了这样的内容,它不让我用扫描仪再试一次,它只是跳到: 它没有给我进入另一个。

  • 通过 SQL,您可以从一个表复制信息到另一个表。 INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。 SQL INSERT INTO SELECT 语句 INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。目标表中任何已存在的行都不会受影响。 SQL INSERT INTO SELECT 语法 我们可以从一个表中

  • 下面的Java不工作,因为它缺少一个return语句。我搞不懂怎么了。有什么想法吗? 即使我去掉字符串u,它也会给出相同的错误,如果我添加int usernameLimit,它也会给出相同的错误。