2011-08-02 7 views
0

PHP PDO 및 SQLITE3에 대한 도움이 필요합니다. 장치에서 모든 선택하고있다 (커서를 통해 반복오고없이 fan_coil_jebeni에 삽입 할 수있는 효율적인 방법이 나는한 테이블에서 모두 선택하고 다른 테이블에 삽입하는 효율적인 방법이 있습니까

CREATE TABLE device (
object_identifier integer PRIMARY KEY NOT NULL, 
object_name varchar(1024), 
vendor_name varchar(1024), 
vendor_identifier integer, 
model_name varchar(1024), 
firmware_revision varchar(1024), 
application_software_version varchar(1024), 
protocol_version integer, 
protocol_revision integer, 
max_apdu_length_accepted integer, 
apdu_timeout integer, 
number_of_apdu_retries integer, 
database_revision integer, 
system_status integer, 
protocol_object_types_supported varchar(65), 
segmentation_supported integer, 
protocol_services_supported varchar(65), 
local_time varchar(32), 
local_date varchar(32), 
location varchar(1024), 
object_list_num integer 
); 

같은 테이블 장치를하고 난

CREATE TABLE fan_coil_jebeni (
object_identifier integer PRIMARY KEY NOT NULL, 
object_name varchar(1024), 
vendor_name varchar(1024), 
); 

내 질문 같은 다른 테이블 fan_coil_jebeni이 beinserted 행의 무리)?

답변

2

insert ... select이 방법에 대해이 여러 번 실행하는 경우 고려하지 않는

INSERT INTO fan_coil_jebeni SELECT object_identifier, object_name, vendor_name FROM device; 
4

당신이 사용할 수있는

insert into fan_coil_jebeni(a,b,c) select a,b,c from device 
+0

. 중복 된 입력으로 인해'fan_coil_jebeni'의 기본 키가 실패합니다. –

+0

그는 중복 키 업데이트를 추가 할 수 있습니다 .... –

+0

예를 들어 다음과 같은 경우 작동하지 않습니다. 'a' 열은 두 테이블 모두에서 고유 한 자동 증가입니다 (열 a는 삽입 할 수 없지만 나머지는 모두 남음). 또한 'a'가 ID로 사용되면 두 테이블에서 동일하게 유지되어야하므로 자동 증가를 제거하는 것과 같은 잘못된 해결 방법도 일시적으로 작동하지 않습니다. – djot

1
CREATE TABLE IF NOT EXISTS `table1` SELECT * FROM `table2` 
관련 문제