带有表别名的 MySQL INSERT

Max*_*and 4 mysql sql insert table-alias

我碰巧有两列与两个 SQL 保留字 Key 和 Value 同名。使用 SELECT 语句时,我可以创建一个表别名并以这种方式解决它。

现在我正在尝试插入数据,但似乎无法在 INSERT 语句中创建表别名。

INSERT INTO attributeStrings ats
(ats.ItemID,ats.Key,ats.Value)
VALUES (3,'Categories','TechGUI')
Run Code Online (Sandbox Code Playgroud)

我收到错误'ats (ats.ItemID,ats.Key,ats.Value) VALUES (3,'Categories','TechGUI')'提示无法创建别名。

有没有办法在不重命名列键和值的情况下解决这个问题?

Nis*_*ant 5

使用反引号来转义保留字。

  INSERT INTO `attributeStrings` (`ItemID`, `Key`,`Value`) VALUES (3,'Categories','TechGUI')
Run Code Online (Sandbox Code Playgroud)

看起来插入不支持别名。看这里


编辑:好的,MySQL ref 说插入中没有别名


它确实有效

mysql> INSERT INTO `attributeStrings` (`ItemID`, `Key`,`Value`) VALUES (3,'Categories','TechGUI');
Query OK, 1 row affected (0.03 sec)

mysql> select * from attributeStrings;
+--------+------------+---------+
| ItemId | Key        | Value   |
+--------+------------+---------+
|      3 | Categories | TechGUI |
+--------+------------+---------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)