使用这两个表,我试图创建一个查询来插入一个新课程,但我使用了外键,我不知道如何将该用户(表)id传递到课程(表)id中。
我想弄点这样的东西
我完全迷路了,关于如何将数据插入到包含外键的表中,
我要做的是:
首先一个人可以注册(用户表)
2.然后用户可以添加课程(im使用外键为特定用户标识课程)
用户表
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)
)
最佳答案
您可以使用子查询查找用户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)
)
;
关于mysql - MySQL外键插入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22035887/