使用这两个表我正在尝试创建一个插入新课程的查询,但我使用的是外键,我不知道如何将那些用户(表)id传递给课程(表)id
我正试图得到这样的东西
关于如何将数据插入包含外键的表,我完全迷失了, 我想做的是:
2.然后用户可以添加课程(我使用外键来识别特定用户的课程)
用户表
id | username |
---------------
1 | test |
课程表
coursesid | coursesname | id(same id that in users table)
1 | courses test| 1
Create Table命令是
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`password` char(64) COLLATE utf8_unicode_ci NOT NULL,
`salt` char(16) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1;
CREATE TABLE `course` (
`courseid` int(11) NOT NULL AUTO_INCREMENT,
`coursename` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`id` int(11) NOT NULL,
UNIQUE KEY (`courseid`)
FOREIGN KEY (od) REFERENCES users(id)
)
答案 0 :(得分:1)
您可以使用子查询来查找用户ID,例如:
insert into course
(courseid, coursename, id)
values
(1, 'test courses',
(SELECT id FROM users where username = 'test')
)
;
原因是,如果您知道用户ID,则可以直接插入此ID:
insert into course
(courseid, coursename, id)
values
(1, 'test courses', 1)
;
仅插入最后一个用户ID的附加查询:
insert into course
(courseid, coursename, id)
values
(1, 'test courses',
(SELECT max(id) FROM users)
)
;