使用这两个表,我试图创建一个查询来插入一个新课程,但我使用了外键,我不知道如何将该用户(表)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/

10-11 01:55
查看更多