2016-09-24 34 views
0

我有我的小型數據庫用於用戶記錄,當我插入新用戶時我希望自動生成id,所以我讓我的使用下面的SQL腳本數據庫:MySql列計數與第1行的值計數不匹配,但所有值都填充

CREATE TABLE `members` (
    `idmembers` int(11) NOT NULL AUTO_INCREMENT, 
    `username` varchar(145) DEFAULT NULL, 
    `password` varchar(545) DEFAULT NULL, 
    `clearance` int(5) DEFAULT NULL, 
    `profilepic` text, 
    `createdby` varchar(45) DEFAULT NULL, 
    `friends` varchar(545) DEFAULT NULL, 
    PRIMARY KEY (`idmembers`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

及以下觸發:

CREATE DEFINER=`root`@`localhost` TRIGGER `fuhrergroup`.`members_BEFORE_INSERT` BEFORE INSERT ON `members` FOR EACH ROW 
BEGIN 
INSERT INTO members VALUES (NULL); 
SET NEW.idmembers = CONCAT('F', LPAD(LAST_INSERT_ID(), 3, '0')); 
END 

然而,當我想插入:

INSERT INTO fuhrergroup.members (idmembers, username, password, clearance, profilepic, createdby, friends) VALUES (NULL, 'admin', 'secret', '5', 'aa', 'System', '') 

我總是得到: 錯誤代碼:1136列數並不在行1匹配值計數

谷歌搜索並沒有真正幫助

+0

MySQL有一個'AUTO_INCREMENT'領域,可以做你想做的... HTTP://開發。 mysql.com/doc/refman/5.7/en/example-auto-increment.html –

+0

我已經有AUTO_INCREMENT,但我不能插入任何數據 –

回答

1

你觸發了不正確的查詢:

INSERT INTO members VALUES (NULL); 

你應該告訴MySQL的列有可能成爲NULL

INSERT INTO members (columnname) VALUES (NULL); 
+0

編輯:nvm,我使用這個答案修復它:http://stackoverflow.com /問題/ 15300673/MySQL的錯誤-着更新表,在存儲功能觸發,因爲,它 - 是 - 已 –

相關問題