【问题标题】:Invalid Identifier in ALTER TABLE ADD COLUMNALTER TABLE ADD COLUMN 中的标识符无效
【发布时间】:2023-03-11 16:16:01
【问题描述】:

我在运行此 ALTER TABLE 语句时收到错误“Invalid Identifier”:

ALTER TABLE TRUCK ADD COLUMN WEIGHT INTEGER NOT NULL;

语法是这样的,所以我不明白错误:

ALTER TABLE table_name ADD COLUMN column_name data_type[NOT NULL][UNIQUE]

属性 WEIGHT 不需要唯一。

如何在 Alter 语句中包含 Integer 数据类型的“不大于 1000”?

【问题讨论】:

  • 您使用的是什么数据库?有些不允许在add 之后使用关键字column
  • 并且由于您的表中没有列 COLUMN 您会收到此错误...或者,可能是 TRUCK 不存在?确切的错误消息是什么 - 将其复制并粘贴到您的问题中(您可以 edit 它)
  • @Ben 我已经创建了卡车表,我只需要在表中添加 2 列即可。不知何故,我得到了错误“无效的标识符”,现在我得到了另一个错误>。
  • @GordonLinoff 我使用的是整数数据类型,不应大于 1000

标签: sql alter-table


【解决方案1】:

SQL 服务器:

 ALTER TABLE TRUCK
 ADD WEIGHT INT NOT NULL 

【讨论】:

  • 嘿,我输入了语句,我得到另一个错误:表必须为空才能添加强制(非空)列..我不明白为什么会这样..为什么我必须删除其他列..
  • 尝试在其后添加分号,我不确定您使用的数据库。编辑:它抱怨的是现有的行在添加新行后没有分配给它的值。最好的解决方案是跳过非空,为现有行添加值,如果它确实是非空值,稍后设置为非空......如果该值可能可以为空,则保持原样,否则你最终会头疼。
  • 如果对您有所帮助,请随时将其标记为已接受的答案。通常你想在最初设置数据库时设置 NOT NULL 以避免这样的事情,但是我知道你有时会被投入维护现有数据库......
  • 此外,就将值保持在 1000 以下而言,我个人认为应该在数据到达数据库之前以编程方式对其进行检查,因为这似乎是业务逻辑。除非您完全被逼入绝境,否则您不希望将业务逻辑与数据层混在一起。
【解决方案2】:

这个查询会很有帮助。

alter table truck 
  add column weight int not null default 0 check (weight < 1000)

【讨论】:

    猜你喜欢
    • 2011-02-06
    • 2011-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-20
    • 1970-01-01
    相关资源
    最近更新 更多