【问题标题】:Syntax Error While Dropping the Primary key删除主键时出现语法错误
【发布时间】:2019-03-07 13:32:50
【问题描述】:

StackOverflow 上有话题:Remove Primary Key in MySQL 其中描述了如何从表的列中取消分配主键。但是这种方法在我的情况下不起作用。

我确实使用了上面主题中编写的代码,对于这个非常简单的过程,但仍然收到错误。请帮忙。这是一个代码:

ALTER TABLE [BOM_V164_MK1A_PLM-000780855_02_D02102018_T10:50:56] 
   DROP PRIMARY KEY;

这是我得到的错误:

提前感谢大家。

【问题讨论】:

  • 如果您使用的是 msaccess,请查看 (stackoverflow.com/questions/1648974/…)
  • 如果后端是 MySQL,请使用直通查询和反引号而不是方括号来包围表名。
  • 你给我的链接stackoverflow.com/questions/1648974/…也失效了:ibb.co/ekxrpK
  • 您必须知道用作主键的索引(而不是列)的名称(可能命名为 [PK_BOM_V164_MK1A_PLM-000780855_02_D02102018_T10:50:56] 并从表中删除该索引。检查索引窗口获取索引名称。
  • 使用这个devhut.net/2014/11/20/ms-access-list-table-indexes函数来查找索引。找到索引后,我轻松地将其删除。所以基本上一切都解决了:)非常感谢大家的帮助!现在我需要将问题标记为已解决,因为我是一个新人,我不知道该怎么做......

标签: ms-access ddl


【解决方案1】:

您可以专门删除索引:

ALTER TABLE [BOM_V164_MK1A_PLM-000780855_02_D02102018_T10:50:56] 
   DROP Constraint [PrimaryKey];

【讨论】:

  • 对于删除索引,我更喜欢 DROP INDEX indexname ON table 而不是 alter table 语句。两者都有效,但DROP INDEX 立即让您意识到您正在删除索引,DROP CONSTRAINT 可以是任何约束。
  • 抱歉,DROP INDEX 在我的情况下也不起作用:ibb.co/ekxrpK :(
  • Access 似乎不支持您的原始语法。我的语法有效 - 但是,当然,只有你们知道主键索引的名称,在 Access 中,通常是 PrimaryKey
  • 正如其他人所说,您需要知道索引的名称 - 尝试使用此处列出的函数devhut.net/2014/11/20/ms-access-list-table-indexes
  • @Minty:是的,然后使用 DAO 和 TableDef 对象删除索引。
猜你喜欢
  • 2015-08-20
  • 1970-01-01
  • 2023-03-22
  • 2018-09-12
  • 1970-01-01
  • 1970-01-01
  • 2014-01-10
  • 2023-03-14
  • 1970-01-01
相关资源
最近更新 更多