替代MySQL中的列名“order”

时间:2011-01-17 17:55:59

标签: mysql sql

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

您在db模型中为该列提供了哪个名称?

感谢您的帮助。

5 个答案:

答案 0 :(得分:74)

我使用“位置”代替“订单”

答案 1 :(得分:48)

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

答案 2 :(得分:11)

只需在表和列的名称周围添加刻度线',例如:

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

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

答案 3 :(得分:4)

至少SQL Server允许你使用方括号括起来使用关键字,虽然我同意这不是一个好主意。

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

答案 4 :(得分:3)

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

select "from" = 'from' from foo

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

select [from] = 'from' from foo

但无论如何,它会使你的代码混乱(尝试将上述内容读给别人。)

如果我需要一个列来排序结果,我通常称它为'sequence_number'或'sort_sequence'。