You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

OpenOffice.org Base中SQL简单删除命令执行报错求助

解决OpenOffice.org Base中DELETE语句的"Column not found"错误

我刚学SQL的时候也踩过一模一样的引号坑,别慌,这个问题超容易解决!

问题根源

你写的SQL语句里,把要匹配的字符串值E001用了双引号"E001",但在OpenOffice.org Base里,双引号是用来标识数据库对象(比如列名、表名)的,所以系统直接把E001当成了一个列名来找,自然就报“Column not found: E001”的错误了。

至于你在在线编辑器里能成功,是因为不同数据库对引号的规则有差异——有些数据库(比如MySQL)在特定模式下允许用双引号表示字符串,但Base严格遵循SQL标准,对单双引号的用途做了明确区分:

  • 双引号:用于表名、列名这类标识符(你已经正确用它包裹了EmployeesEmployeeID
  • 单引号:用于字符串常量值

修正后的SQL代码

只需要把"E001"改成单引号包裹的'E001'就可以正常执行了:

DELETE FROM "Employees" WHERE "EmployeeID" = 'E001';

给新手的小提醒

刚学SQL记牢这个引号规则能少走很多弯路:

  • 引用表/列名时用双引号(如果名字里没有空格或特殊字符,其实可以不用,但用了也不会出错)
  • 字符串常量值时必须用单引号

内容的提问来源于stack exchange,提问作者thundercrypt

火山引擎 最新活动