我可以在mysql表中命名列name
吗?
答案 0 :(得分:16)
为什么不尝试呢?
mysql> select name from name;
+------+
| name |
+------+
| 1 |
+------+
你也可以用``。
引用任何名字mysql> select `from` from `from`;
+------+
| from |
+------+
| 1 |
+------+
答案 1 :(得分:4)
你应该好好调用一个列'name'。查看http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html以获取有关如何处理保留字的更多详细信息。
在(`)字符中包装列名可确保即使保留字也不会被误解。
答案 2 :(得分:4)
是即使是人名,我也建议 FirstName 或 FullName 作为更具体的列名{{3 }}
答案 3 :(得分:4)
无论您是否可以,您可能都希望首先考虑为什么。什么名字?什么名字?几年之后,如果你看一下数据库模式,你还会记得这些细节吗?
我建议将列名称与处理任何变量名称相同,并为其指定一个描述性名称符合您的最佳利益。未来几年,你(或任何维护你代码的人)都会感谢你。
答案 4 :(得分:0)
CREATE TABLE mytest (name INT);
SELECT *
FROM mytest;
name
--------
在可疑的情况下,您可以将姓名括在严重的口音中:
CREATE TABLE `CREATE TABLE` (name INT);
SELECT *
FROM `CREATE TABLE`;
name
--------
答案 5 :(得分:0)
这里只是提醒一句。由于字段名称name
没问题。
但是,在存储过程名称中,变量会执行其他操作。
请考虑以下程序。当我调用此过程时,它总是会改变我的配置数据库中的第一条记录。一旦我将名为name的变量重命名为其他东西,一切正常。
PROCEDURE `updateConfig`(IN name VARCHAR(255), IN val VARCHAR(255))
BEGIN
UPDATE LOW_PRIORITY `config`
SET `value`=val
WHERE `name` = name
LIMIT 1;
END