OMG*_*ies 19
复制表的最便携方法是:
使用基于旧表中的SELECT的INSERT:
INSERT INTO new_table
SELECT * FROM old_table
Run Code Online (Sandbox Code Playgroud)在SQL Server中,我使用INTO语法:
SELECT *
INTO new_table
FROM old_table
Run Code Online (Sandbox Code Playgroud)
...因为在SQL Server中,INTO子句创建了一个尚不存在的表.
Dan*_*llo 14
如果您使用的是MySQL,则可能需要使用该CREATE TABLE ... AS SELECT语法来创建由另一个结果集的列和数据类型定义的表:
CREATE TABLE new_table AS
SELECT *
FROM old_table;
Run Code Online (Sandbox Code Playgroud)
例:
CREATE TABLE old_table (id int, value int);
INSERT INTO old_table VALUES (1, 100), (2, 200), (3, 300), (4, 400);
CREATE TABLE new_table AS
SELECT *
FROM old_table;
SELECT * FROM new_table;
+------+-------+
| id | value |
+------+-------+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
| 4 | 400 |
+------+-------+
4 rows in set (0.00 sec)
DESCRIBE new_table;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| value | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.03 sec)
Run Code Online (Sandbox Code Playgroud)
对于不支持此语法的其他DBMS,您可能需要查看@OMG Ponies的答案,以获得更便携的解决方案.
| 归档时间: |
|
| 查看次数: |
58465 次 |
| 最近记录: |