INSERT INTO SELECT + 1自定义列

时间:2012-08-26 19:51:50

标签: sql

我需要从原始表中复制数据并添加在查询中指定的自定义列

原始表格结构:col1, col2, col3

插入表格结构:x, col1, col2, col3

INSERT INTO newtable 
   SELECT * 
   FROM original 
   WHERE cond

我收到此错误

  

列数与第1行的值计数不匹配

如何在此单个查询中插入X值?

我认为这样的事情可以通过

INSERT INTO newtable 
   SELECT 'x' = NULL, *  
   FROM original 
   WHERE cond

有什么想法吗?

是否可以使用*?因为该表有很多列,X必须是第一个值

我知道这一切都很糟糕但是我必须用更糟糕的PHP代码编辑不可信的丑陋数据库

3 个答案:

答案 0 :(得分:3)

第二个语句几乎是正确的,但不是'x' = null,而是使用null x(我假设您要在名为null的列中存储x值);

INSERT INTO newtable 
SELECT null x, o.* FROM original o WHERE cond

答案 1 :(得分:2)

Select Null as X, *
into newtable
from original
where ...

答案 2 :(得分:1)

INSERT INTO newtable 
SELECT null as x, col1, col2, col3 FROM original WHERE cond