插入到。。。值(选择。。。来自…)

2024-03-29 00:36:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用另一个表的输入INSERT INTO一个表。尽管这对于许多数据库引擎来说是完全可行的,但我似乎总是很难记住今天的SQL引擎(MySQLOracleSQL ServerInformixDB2)的正确语法。

是否有一个来自SQL标准(例如,SQL-92)的银弹语法允许我插入值而不必担心底层数据库?


Tags: 引擎数据库sql标准servermysql语法oracle
3条回答

@Shadow_x99:这应该很好,而且您还可以有多个列和其他数据:

INSERT INTO table1 ( column1, column2, someInt, someVarChar )
SELECT  table2.column1, table2.column2, 8, 'some string etc.'
FROM    table2
WHERE   table2.ID = 7;

编辑:我应该提到,我只在Access、SQL 2000/2005/Express、MySQL和PostgreSQL中使用过这种语法,所以应该涵盖这些语法。一位评论人士指出,它将与SQLite3一起工作。

尝试:

INSERT INTO table1 ( column1 )
SELECT  col1
FROM    table2  

这是标准的ANSI SQL,应该可以在任何DBMS上工作

它绝对适用于:

  • 甲骨文
  • MS SQL服务器
  • MySQL数据库
  • 博士后
  • SQLite v3版
  • Teradata公司
  • 数据库
  • 赛贝斯
  • 眩晕
  • HSQLDB公司
  • 氢气
  • AWS红移
  • SAP HANA公司

要从另一个表中获取多值INSERT中的一个值,我在SQLite3中执行了以下操作:

INSERT INTO column_1 ( val_1, val_from_other_table ) 
VALUES('val_1', (SELECT  val_2 FROM table_2 WHERE val_2 = something))

相关问题 更多 >