繁体   English   中英

我的 SQL Fiddle 查询有什么问题?

[英]What's wrong with my SQL Fiddle query?

看看 SQL fiddle 中的这个简单查询: http ://sqlfiddle.com/#!2/c1eb6/1。 这是一个超级简单的更新查询,为什么会产生错误? 我想知道这是否可能是该网站中的错误?

构建架构:

create table your_table (some_column varchar(50));

insert into your_table set some_column = '30# 11';
insert into your_table set some_column = '30# 12.00';
insert into your_table set some_column = '30# 13.5';
insert into your_table set some_column = 'abdfs';
insert into your_table set some_column = '0000000';

询问:

UPDATE your_table
SET some_column = 1;

对于那些对我在 SQL Fiddle 上处理的一些神秘问题感兴趣的人来说一些背景知识:

在 JDBC 中禁用显式提交,在 SQL 中检测它们,或将数据库置于只读状态(dba.se)

从本质上讲,我试图确保小提琴始终保持一致的状态,即使人们在玩它们。 我担心的一件事是人们故意弄乱数据库,为可能正在使用它们的其他人破坏它们(这种情况以前发生过,但幸运的是不经常发生)。

我已经找到了为每个数据库平台保持清洁的方法,但有趣的是,每个平台的每个方法都完全不同。 不幸的是,对于 MySQL,我不得不求助于最糟糕的选择——只允许右侧的 SELECT。 这是因为有太多方法可以编写包含隐式提交的查询,而且我发现没有办法阻止这种情况发生,除非在查询端完全拒绝。 这很不幸,我意识到,但这似乎是必需的。

无论如何,这个特殊的错误是我最近对 ​​MySQL 逻辑所做的更改的结果。 现在已修复,现在报告预期的错误消息:

MySQL 的查询面板中不允许使用 DDL 和 DML 语句; 只允许 SELECT 语句。 将 DDL 和 DML 放在架构面板中。

我在 SQL Fiddle 上收到此错误,因为我试图使用 PostgresSql 语法,而解释器设置为 MySql

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM