将行插入到SQL表中,其中包含一些预定义的值,一些来自另一个表的值以及连接字符串。

时间:2018-10-11 02:28:49

标签: mysql database sqlite

嗨,我正在尝试在下面运行此查询:

INSERT INTO Database2.Table2 ('1', getdate(), getdate(), '',ID,'','0','0','0','',ID,'','',getdate(),getdate(),'','0','"stackoverflow.com/"'+'ID','0','product','','0') 
SELECT ID
FROM Database1.Table1;

我要插入一个新行,该行中的常量数据与另一个表(本例为Database1.Table1“ ID”)中的数据混合在一起。当我尝试运行此代码时,我不断收到选择语句错误。有我要监督的事情吗,还是这句话错了?谢谢

1 个答案:

答案 0 :(得分:1)

将常量放入SELECT列表中。

INSERT INTO Database2.Table2 
SELECT '1', getdate(), getdate(), '',ID,'','0','0','0','',ID,'','',getdate(),getdate(),
       '','0',CONCAT('"stackoverflow.com/"','ID'),'0','product','','0', ID
FROM Database1.Table1;

顺便说一句,强烈建议您摆脱使用INSERT的习惯,而不必在值之前列出列名。根据表定义中列的特定顺序,很容易出错。

此外,默认情况下,MySQL不使用+进行字符串连接,而是使用CONCAT()函数。