기본 키가 자동으로 증가하는 MySQL에 데이터를 삽입하려면 어떻게 해야 합니까?
기본 키를 사용하여 테이블을 만들고 활성화했습니다.AUTO_INCREMENT
, MYSQL 사용방법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)
);
여기 제가 사용한 쿼리가 있습니다.첫 번째 값으로 ""와 "1"을 시도했지만 작동하지 않습니다.
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');
자동 증분 필드를 자동으로 할당하려면 NULL 또는 0으로 설정합니다.
열의 자동 증가 기능을 사용하려면 행을 삽입할 때 해당 열의 값을 제공하지 마십시오.데이터베이스는 사용자에게 값을 제공합니다.
INSERT INTO test.authors (
instance_id,host_object_id,check_type,is_raw_check,
current_check_attempt,max_check_attempts,state,state_type,
start_time,start_time_usec,end_time,end_time_usec,command_object_id,
command_args,command_line,timeout,early_timeout,execution_time,
latency,return_code,output,long_output,perfdata
) 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'
);
그default
키워드가 효과가 있습니다.
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)
나는 달리고 있다mysql --version
5.1.66:
mysql Ver 14.14 Distrib **5.1.66**, for debian-linux-gnu (x86_64) using readline 6.1
이 투고를 확인해 주세요.
그것에 따르면
AUTO_INCREMENT 열에 값이 지정되지 않았기 때문에 MySQL은 시퀀스 번호를 자동으로 할당했습니다.열에 NULL 또는 0을 명시적으로 할당하여 시퀀스 번호를 생성할 수도 있습니다.
여기에서는 다음 옵션 중 하나를 수행할 수 있는 모든 값을 제공하기 때문에 AUTO_INCREMENT 열의 값을 "지정"하는 데 도움이 되는 세 가지 방법을 볼 수 있습니다.
첫 번째 접근법(NULL 제공):
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'
);
두 번째 접근법('{간단한 따옴표/아포스트로피}' 제공, 경고 표시):
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'
);
세 번째 접근법(디폴트 제공):
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'
);
테이블을 작성할 때 정의한 순서대로 모든 값을 포함하는 한 테이블에 삽입할 때 다음 예 중 하나로 충분합니다.
SQL 요청에 값만 입력하기 위해 이와 같은 방법을 사용했습니다.내 경우 열이 너무 많아서 나는 게을러.
insert into my_table select max(id)+1, valueA, valueB, valueC.... from my_table;
언급URL : https://stackoverflow.com/questions/8753371/how-to-insert-data-to-mysql-having-auto-incremented-primary-key
'source' 카테고리의 다른 글
PHP는 클래스 이름에서 개체를 문자열로 인스턴스화할 수 있습니까? (0) | 2022.09.28 |
---|---|
int를 부호 없는 바이트로 변환하고 되돌리는 방법 (0) | 2022.09.28 |
JavaScript 문자열에서 여러 공백을 단일 공백으로 바꿉니다. (0) | 2022.09.28 |
iOS 6의 Safari는 $.ajax 결과를 캐싱하고 있습니까? (0) | 2022.09.28 |
Vue Dev Tools에서 데이터가 업데이트되지 않는 이유는 무엇입니까? (0) | 2022.09.28 |