2011-08-02 5 views
0

PHP PDOとSQLITE3のヘルプが必要です。デバイスからすべてを選択し、そこにある(カーソルを通じて反復来なくてfan_coil_jebeniに挿入する任意の効率的な方法があると私は1つのテーブルからすべてを選択して別のテーブルに挿入する効率的な方法はありますか

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 INTO fan_coil_jebeni SELECT object_identifier, object_name, vendor_name FROM device; 
4

あなたはこれについてinsert ... select

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` 
関連する問題