2016-09-24 5 views
0

Ich habe meine kleine Datenbank für die Benutzerdatensätze, wenn ich einen neuen Benutzer einfügen möchte ich die ID automatisch generiert werden, so habe ich meine Datenbank des folgenden sQL-Skript:MySql Spaltenanzahl stimmt nicht mit Wert Anzahl in Zeile 1 überein, aber alle Werte sind gefüllt

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; 

und die folgenden Trigger:

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 

Allerdings, wenn ich einfügen will:

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

ich immer erhalten: Fehlercode: 1136. Spaltenanzahl Zählwert nicht in Zeile 1

googeln passen wirklich nicht

helfen
+0

MySQL hat eine 'AUTO_INCREMENT' Feld, das tun, was Sie wollen ... http: // dev. mysql.com/doc/refman/5.7/en/example-auto-increment.html –

+0

Ich habe bereits AUTO_INCREMENT, aber ich kann keine Daten einfügen –

Antwort

1

Ihre Auslöser eine falsche Abfrage hat:

INSERT INTO members VALUES (NULL); 

Sie sollten MySQL sagen, welche Spalte NULL werden hat:

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

EDIT: nvm, ich habe es mit dieser Antwort behoben: http://StackOverflow.com/questions/15300673/mysql-error-cant-Aktualisierungs-Tabelle-im-gespeicherten-Funktion-Trigger-weil-es-ist-bereits –

Verwandte Themen