gpt4 book ai didi

mysql - ms-access 无法删除

转载 作者:行者123 更新时间:2023-11-29 05:46:23 26 4
gpt4 key购买 nike

ms-access 正在连接到本地 mysql 数据库

以下代码返回错误:

Public Function run_sql(strSql As String)
On Error GoTo lblError
CurrentDb.Execute strSql, dbFailOnError
lblExit:
Exit Function
lblError:
MsgBox Err.Number & ": " & Err.Description
Resume lblExit
End Function

strSql = "从 user_id=2007 的 tblUsersSubjects 中删除;"- 我运行了这条语句,它工作得很好,但是 Access 给我这个错误:3086:无法从指定的表中删除

这个错误的原因是什么?

表结构为:

CREATE TABLE `tbluserssubjects` (
`user_id` int(11) NOT NULL,
`subject_id` int(11) NOT NULL,
`other` varchar(50) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

请注意,我能够使用 shell 而不是 Access 来执行所需的删除操作

最佳答案

在 Access 中,您可以在数据 TableView 中打开链接表 tblUsersSubjects 并在数据 TableView 中编辑或删除吗?否则,Access 可能会将与 MySql 表的连接视为只读。尝试删除链接(在 Access 中;不是 MySql 中的实际表)。然后重新链接 Access 中的表,并确保告诉 Access 将哪个字段(或字段组合)用作主键。如果 Access 不知道链接表的主键,链接将是只读的。

经过与Alex的线下讨论,我想补充一下这个答案:

Access原来没认出什么来用作主键,因此您的链接表在 Access 端是只读的。我猜那是因为你的 CREATE TABLE 语句没有包括一个主键约束。但我实际上并不知道Access 如何自动在链接到外部表。也许,在没有明确定义的情况下主键,它可能会查找具有 Not Null 和 Unique 的字段约束。但是 CREATE TABLE 语句没有包含对你的 MySql 的任何唯一约束表。

因此当 Access 无法自动猜测外部表的主键时,您必须告诉它使用哪个字段(或多个字段)作为主键...除非您想要链接表在 Access 中为只读。

关于mysql - ms-access 无法删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1355234/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com