Php 有没有什么有效的方法可以从一个表中全选并插入到另一个表中

Php 有没有什么有效的方法可以从一个表中全选并插入到另一个表中,php,pdo,Php,Pdo,我需要PHP PDO和SQLITE3的帮助。我有桌上设备,比如 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), a

我需要PHP PDO和SQLITE3的帮助。我有桌上设备,比如

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),
);
我的问题是,有没有什么有效的方法可以从设备中选择全部并插入到风扇线圈中,而无需通过光标反复输入。要插入的行很多?

您可以使用

这个怎么样:

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

如果运行多次,则不考虑这一点。fan_coil_jebeni上的主键将由于重复条目而失败。例如,如果两个表中的a列都是唯一的自动增量,则这不起作用,因为您无法插入a列,但所有其他/剩余列都不能插入。此外,如果将a用作ID,则它在两个表中应保持不变,因此临时删除自动增量之类的糟糕解决方法也不起作用。
INSERT INTO fan_coil_jebeni SELECT object_identifier, object_name, vendor_name FROM device;
CREATE TABLE IF NOT EXISTS `table1` SELECT * FROM `table2`