所以我有两个由键'skillid'链接的表:
skills
+-----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+----------------+
| skillid | int(11) | NO | PRI | NULL | auto_increment |
| skillname | varchar(30) | NO | | NULL | |
+-----------+-------------+------+-----+---------+----------------+
students_skills
+-----------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------+------+-----+---------+----------------+
| ssid | int(11) | NO | PRI | NULL | auto_increment |
| studentid | int(11) | NO | MUL | NULL | |
| skillid | int(11) | NO | MUL | NULL | |
+-----------+---------+------+-----+---------+----------------+
我正在尝试将多行插入到表技能中,然后根据创建的 ID 将它们插入到 student_skills 中。我一直在研究使用 LAST_INSERT_ID() 函数:
INSERT INTO skills (skillid , skillname)
VALUES(NULL,'being grateful for help'); # generate ID by inserting NULL
INSERT INTO students_skills (ssid, studentid, skillid)
VALUES(LAST_INSERT_ID(),'1', '2'); # use ID in second table
但是我不知道如何在一个 mysql 表中一次对多行执行此操作。当我简单地为每一行复制上述 4 行时,我得到一个错误。
错误:#1452 - 无法添加或更新子行:外键约束失败 (
empology
.students_skills
, CONSTRAINTstudents_skills_ibfk_2
FOREIGN KEY (skillid
) REFERENCESskills
(skillid
))
我是否在正确的路线上?我也研究了连接,但这种方法对我来说更有意义。
感谢您提供任何帮助或有用的链接。