Ich habe eine Tabelle mit einem Primärschlüssel erstellt und aktiviert AUTO_INCREMENT
. Wie kann ich MYSQL verwenden AUTO_INCREMENT
?
CREATE TABLE IF NOT EXISTS test.authors (
hostcheck_id INT PRIMARY KEY AUTO_INCREMENT,
instance_id INT,
host_object_id INT,
check_type INT,
is_raw_check INT,
current_check_attempt INT,
max_check_attempts INT,
state INT,
state_type INT,
start_time datetime,
start_time_usec INT,
end_time datetime,
end_time_usec INT,
command_object_id INT,
command_args VARCHAR(25),
command_line VARCHAR(100),
timeout int,
early_timeout INT,
execution_time DEC(18,5),
latency DEC(18,3),
return_code INT,
output VARCHAR(50),
long_output VARCHAR(50),
perfdata VARCHAR(50)
);
Hier ist die Abfrage, die ich verwendet habe. Ich habe "" und "1" für den ersten Wert ausprobiert, aber es funktioniert nicht.
INSERT INTO test.authors VALUES ('1','1','67','0','0','1','10','0','1',
'2012-01-03 12:50:49','108929','2012-01-03 12:50:59','198963','21','',
'/usr/local/nagios/libexec/check_ping 5','30','0','4.04159','0.102','1',
'PING WARNING -DUPLICATES FOUND! Packet loss = 0%, RTA = 2.86 ms','',
'rta=2.860000m=0%;80;100;0');
Setzen Sie das Auto-Inkrement-Feld auf NULL oder 0, wenn Sie möchten, dass es automatisch magisch zugewiesen wird ...
quelle
NULL
, da0
das Verhalten von NO_AUTO_VALUE_ON_ZERO beeinflusst werden kann .Das
default
Schlüsselwort funktioniert bei mir:mysql> insert into user_table (user_id, ip, partial_ip, source, user_edit_date, username) values (default, '39.48.49.126', null, 'user signup page', now(), 'newUser'); --- Query OK, 1 row affected (0.00 sec)
Ich verwende
mysql --version
5.1.66:quelle
Schauen Sie sich diesen Beitrag an
Demnach
quelle
Ich sehe hier drei Möglichkeiten, die Ihnen helfen, in Ihre Tabelle einzufügen, ohne ein komplettes Durcheinander zu verursachen, aber einen Wert für die Spalte AUTO_INCREMENT "anzugeben" , da Sie alle Werte angeben, können Sie eine der folgenden Optionen ausführen.
Erster Ansatz ( NULL liefern ):
INSERT INTO test.authors VALUES ( NULL,'1','67','0','0','1','10','0','1','2012-01-03 12:50:49','108929', '2012-01-03 12:50:59','198963','21','', '/usr/local/nagios/libexec/check_ping 5','30','0','4.04159', '0.102','1','PING WARNING -DUPLICATES FOUND! Packet loss = 0%, RTA = 2.86 ms', '','rta=2.860000m=0%;80;100;0' );
Zweiter Ansatz (Bereitstellung von '' {einfache Anführungszeichen / Apostrophe}, obwohl Sie eine Warnung erhalten):
INSERT INTO test.authors VALUES ( '','1','67','0','0','1','10','0','1','2012-01-03 12:50:49','108929', '2012-01-03 12:50:59','198963','21','', '/usr/local/nagios/libexec/check_ping 5','30','0','4.04159', '0.102','1','PING WARNING -DUPLICATES FOUND! Packet loss = 0%, RTA = 2.86 ms', '','rta=2.860000m=0%;80;100;0' );
Dritter Ansatz ( Standard liefern ):
INSERT INTO test.authors VALUES ( default,'1','67','0','0','1','10','0','1','2012-01-03 12:50:49','108929', '2012-01-03 12:50:59','198963','21','', '/usr/local/nagios/libexec/check_ping 5','30','0','4.04159', '0.102','1','PING WARNING -DUPLICATES FOUND! Packet loss = 0%, RTA = 2.86 ms', '','rta=2.860000m=0%;80;100;0' );
Jedes dieser Beispiele sollte beim Einfügen in diese Tabelle ausreichen, solange Sie alle Werte in derselben Reihenfolge angeben, in der Sie sie beim Erstellen der Tabelle definiert haben.
quelle