我正在使用MySQL Workbench来创建数据库。我有一个名为USERS的表定义如下:
delimiter $$
CREATE TABLE `users` (
`UID` int(10) unsigned NOT NULL AUTO_INCREMENT
`USERNAME` varchar(20) NOT NULL,
`PASSWORD` varchar(64) NOT NULL
PRIMARY KEY (`UID`),
UNIQUE KEY `USER_NAME_UNIQUE` (`USERNAME`),
KEY `USERS_ROLES_REF_IDX` (`USER_ROLE`),
CONSTRAINT `USERS_ROLES_REF` FOREIGN KEY (`USER_ROLE`) REFERENCES `roles_ref` (`ROLE_NAME`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8$$
CREATE
DEFINER=`root`@`localhost`
TRIGGER `MyDB`.`users_after_ins_trig`
AFTER INSERT ON `MyDB`.`users`
FOR EACH ROW
begin
insert into profiles (username) VALUES (new.username);
end
$$
当我继续设计数据库并创建它时,脚本会给我以下错误。从上面可以看出,用户名是表的一部分。是什么给了什么?
Executing SQL script in server
ERROR: Error 1054: Unknown column 'username' in 'field list'
INSERT INTO `MyDB`.`USERS` (`UID`, `USERNAME`, `PASSWORD`)
VALUES (NULL, 'user1', 'blahpassword')
答案 0 :(得分:4)
您是否正在从触发器插入profiles
?我猜profiles
没有用户名栏。