在MySQL中可以替代列名“order”

当我创build一个需要由用户定义的sorting的新表时,我的第一个想法总是转到列名“order”。 当然,这是不好的,因为它是一个保留字。

你在你的数据库模型中给你哪个名字?

谢谢你的帮助。

我经常使用简单的同义词,例如“sorting”。

我用“职位”代替“订单”

只需在表格和列的名称周围添加刻度标记,例如:

  CREATE TABLE `order` ( `order#` char(4) NOT NULL, `ord_date` DATE, Primary Key (`order#`) ) ENGINE=InnoDB; 

这允许使用特殊的字符和关键字,至less这适用于当前版本的MySql。

至less,SQL Server允许你使用关键字,如果用方括号括起来,尽pipe我同意这不是一个好主意。

我相信我最后一次这样做,我用SortOrder作为名字。 但是,我经常使用反映表的例如UsrSortOrder的前缀,所以这并不总是一个问题。

在ANSI / ISO SQL中,用作列名称时,双引号将分隔关键字; string文字用单引号分隔:

 select "from" = 'from' from foo 

Microsoft SQL Server允许使用方括号代替双引号:

 select [from] = 'from' from foo 

但是无论如何,这会让你的代码变得糟糕透顶(试着把上面的代码读给别人看)。

如果我需要一个列来sorting结果,我通常把它称为“sequence_number”或“sort_sequence”。