我们可以将带有insert的别名用于语法吗?
以下工作均无效:
INSERT INTO tableblabla AS bla
INSERT INTO bla tableblabla
INSERT INTO tableblabla bla
我似乎找不到任何关于此的信息;是否有一种在INSERT语句中使用别名的有效方法?
答案 0 :(得分:15)
唉,INSERT syntax可以看出这是不可能的。请注意它只是说[INTO] tbl_name
而没有提及[AS] alias
,而允许别名的Update syntax表示“table_reference”和further documentation状态可以扩展为 table_factor ,其中包含tbl_name [AS] alias
。
很不幸,因为能够在INSERT上使用表别名对于INSERT ... ON DUPLICATE KEY UPDATE
语句非常有用。特别是在对列进行检查时,如下例所示:
insert into very_long_table_name_that_can_be_modified_one_day_or_during_testing (
mykey,
column1,
column2,
column3,
<column99>
)
select
mykey,
column1,
column2,
column3,
<column99>
from subquery
on duplicate key update
column1 = ifnull(values(column1), very_long_table_name_that_can_be_modified_one_day_or_during_testing.column1),
column2 = ifnull(values(column2), very_long_table_name_that_can_be_modified_one_day_or_during_testing.column2),
column3 = ifnull(values(column3), very_long_table_name_that_can_be_modified_one_day_or_during_testing.column3),
<column99>;
如果表名更改,则必须修改许多代码行,而不是在查询中使用的开头使用别名。
答案 1 :(得分:5)
INSERT
syntax不允许使用别名。为什么在INSERT语句中你还需要一个呢?您一次只能INSERT
进入一个表格。