当我创建一个需要用户定义的排序的新表时,我的第一个想法总是转到列名“order”。当然,这不是好事,因为它是一个保留字。
您在db模型中为该列提供了哪个名称?
感谢您的帮助。
答案 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'。