我的SQL Fiddle查询出了什么问题?

jef*_*ind 4 mysql sqlfiddle

在SQL小提琴中查看这个简单的查询: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';
Run Code Online (Sandbox Code Playgroud)

查询:

UPDATE your_table
SET some_column = 1;
Run Code Online (Sandbox Code Playgroud)

Jak*_*sel 7

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

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

从本质上讲,我试图确保小提琴始终保持一致状态,即使人们玩它们也是如此.我担心的一件事是人们故意乱搞数据库,打破了可能与他们合作的其他人(这种情况以前发生过,但幸运的是并不常见).

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

无论如何,这个特殊的错误是我最近在MySQL逻辑中做出的改变的结果.它现在已修复,现在报告预期的错误消息:

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