ACCESS中能否通过CREATE TABLE语句为表列添加描述?
在CREATE TABLE语句中添加列描述的可行性
能不能在CREATE TABLE时直接给列加描述,完全取决于你使用的数据库——因为SQL标准里并没有定义COMMENT或DESCRIPTION这类语法,都是各数据库厂商的扩展功能。
以下是主流数据库的具体实现方式:
MySQL/MariaDB:支持在CREATE TABLE时直接给列加COMMENT,你写的示例语法是正确的,注意COMMENT要放在列定义的最后:
CREATE TABLE Table1 ( Field1 VARCHAR(250) NOT NULL UNIQUE, Field2 VARCHAR(250) NOT NULL COMMENT 'Test It' );如果执行失败,优先检查语法顺序是否正确,低版本MySQL基本也支持该语法。
PostgreSQL:不支持在CREATE TABLE里直接加列描述,必须建表后单独执行
COMMENT ON COLUMN语句:CREATE TABLE Table1 ( Field1 VARCHAR(250) NOT NULL UNIQUE, Field2 VARCHAR(250) NOT NULL ); COMMENT ON COLUMN Table1.Field2 IS 'Test It';SQL Server:同样不能在CREATE TABLE时直接添加,需要用系统存储过程
sp_addextendedproperty来补充列描述:CREATE TABLE Table1 ( Field1 VARCHAR(250) NOT NULL UNIQUE, Field2 VARCHAR(250) NOT NULL ); EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'Test It', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Table1', @level2type=N'COLUMN',@level2name=N'Field2';Oracle:标准做法是建表后执行
COMMENT ON COLUMN语句,12c及以上版本也支持在CREATE TABLE时内嵌COMMENT(但兼容性不如单独执行的写法):-- 传统兼容写法 CREATE TABLE Table1 ( Field1 VARCHAR2(250) NOT NULL UNIQUE, Field2 VARCHAR2(250) NOT NULL ); COMMENT ON COLUMN Table1.Field2 IS 'Test It'; -- 12c+内嵌写法 CREATE TABLE Table1 ( Field1 VARCHAR2(250) NOT NULL UNIQUE, Field2 VARCHAR2(250) NOT NULL COMMENT 'Test It' );
你提到见过COMMENT作为数据类型的用法,大概率是混淆了其他语法片段——没有主流数据库会把COMMENT作为数据类型,可能是看到包含COMMENT的复杂语句时产生了误解。
内容的提问来源于stack exchange,提问作者narnone
相关产品推荐
相关产品推荐

