2016-09-24 2 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', '') 

나는 항상 얻을 : 오류 코드 :

INSERT INTO members VALUES (NULL); 

: (1136) 열 수는

인터넷 검색을 정말

+0

MySQL은 당신이 원하는 것을 할 수있는'AUTO_INCREMENT' 필드가 ... HTTP : // DEV. mysql.com/doc/refman/5.7/en/example-auto-increment.html –

+0

이미 AUTO_INCREMENT가 있지만 어떤 데이터도 삽입 할 수 없습니다. –

답변

1

귀하의 트리거가 잘못된 쿼리를 가지고 도움이되지 않았다 행 1에서 값의 수를 일치하지 않습니다 당신은 NULL가되기 위해 가지고있는 열 MySQL을 얘기해야

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

편집 : nvm,이 대답을 사용하여 수정했습니다 : http://stackoverflow.com/questions/15300673/mysql-error-cant-update-table-in-stored-function-trigg-because-it-is-already –

관련 문제