【发布时间】:2018-01-28 14:40:17
【问题描述】:
我有一个名为Create_Group 的表。我想添加一个约束,只有拥有 user_type 员工的人才能在表Create_group 中插入。
CREATE TABLE `User`
(
`user_id` varchar(10) NOT NULL,
`username` varchar(20) NOT NULL,
`user_type` varchar(20) NOT NULL,
CONSTRAINT UC_User UNIQUE (user_id,username)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `User` ADD PRIMARY KEY (`user_id`);
我试过这样做:
CREATE TABLE `Create_Group`
(
`group_id` varchar(10) NOT NULL,
`user_id` varchar(10) NOT NULL,
`group_creator` varchar(20) NOT NULL,
`group_name` varchar(50) NOT NULL,
CONSTRAINT UC_Group UNIQUE (group_id,group_name)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `Create_Group`
ADD PRIMARY KEY (`group_id`),
ADD KEY (`user_id`);
UPDATE `Create_Group`
SET `group_id`,`user_id`,`group_creator`,`group_name`,`date_created`
WHERE (SELECT user_type
FROM User
WHERE `group_creator`=username) = `Staff`
但是更新一直给我一个错误。
用户输入示例:
INSERT INTO `User` (`user_id`, `username`, `user_type`)
VALUES (UUID(), 'TheDoctor', 'Staff'), (UUID(), 'DoctorStrange', 'User');
Group_Create 的输入示例:
INSERT INTO `Create_Group` (`group_id`, `user_id`, `group_creator`, `group_name`, `date_created`)
SELECT
UUID(),user_id,'TheDoctor','HeroesUnited', CURRENT_TIMESTAMP()
FROM
User
WHERE
username='TheDoctor'
提前致谢!
【问题讨论】:
-
为什么每个表名和列名都使用特殊字符`?还有什么是你得到的错误?请在这个问题中标记正确的数据库 SQL server、msAccess...等
标签: sql sql-update mamp