我正在使用 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')
最佳答案
可能是您从触发器插入到 profiles
中?我猜 profiles
没有用户名列。
关于MySQL 错误 1054 : Unknown column in 'field list' on INSERT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9692491/