你好,我会给你们一个数据库表的例子,这些表很麻烦,所以我有 3 个连接表是的,试图将列表放入数据库中,无论如何,我在为其编写插入查询时遇到了麻烦
vogelsoort
id|naam|idhooftoonder|
现在 idhoofdtoonder 引用连接表的 id 来将列表转换为 mysql 数据库(表的逻辑将在下面添加)
hoofdtoonder
|pkey|Id|idondersoorten
现在 idhoofdtoonder 引用下表它的 id
ondersoort
id|naam
很抱歉问这个问题,我对 mysql 的经验还不够
编辑:问题是因为我已经尝试了一个简单的插入查询,它覆盖了我正在寻找帮助的现有数据,而不是覆盖现有的 id 和连接,因为(idhootoonder 引用 hooftonder(id) 和 hooftoonder idontersoorten对 ondersoort(id) 的引用,但并非 ondersoort 中的所有数据都连接到同一个 vogelsoort,我需要一个不覆盖现有连接的插入查询
最佳答案
您需要 3 个插入语句,每个表一个。
您可以使用 TRANSACTION 安全地进行操作。
您需要使用 LAST_INSERT_ID() 函数(为此您的 PK 字段必须是 auto_increment),文档:http://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_last-insert-id
START TRANSACTION;
INSERT INTO ondersoort (id, naam) VALUES (NULL, 'data');
INSERT INTO hoofdtoonder (pkey, Id, idondersoorten) VALUES (NULL, NULL, LAST_INSERT_ID());
INSERT INTO vogelsoort (id, naam, idhooftoonder) VALUES (NULL, 'data', LAST_INSERT_ID());
COMMIT;
关于MYSQL inner join insert 多张表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41742664/