2012-03-13 185 views
0

我正在使用MySQL Workbench创建数据库。我定义的表称为用户,如下:MySQL错误1054:INSERT中'字段列表'中的未知列

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

我们看到'用户'的模式,但不是'profiles'。 – 2012-03-13 21:34:24

回答

4

难道你是从你的触发器插入profiles?我猜profiles没有用户名列。

+1

我只需要第二组眼睛。谢谢!!! – Adam 2012-03-13 21:49:26

+1

触发器是棘手的小混蛋 – 2012-03-13 21:57:33

+0

+1它帮助我调试我的触发器 – 2013-07-18 06:17:19

相关问题