[英]sql syntax error with VERY basic command? why?
我正在尝试使用MySql Workbench创建一个表。 这是sql命令:
CREATE TABLE `bmxData`.`new_table` ();
但执行此操作时出现此错误: -
执行:
CREATE TABLE
bmxData
。new_table
();操作失败:将SQL脚本应用于数据库时出错。
错误1064:您的SQL语法中有错误; 检查与您的MySQL服务器版本对应的手册,以便在第1行的')'附近使用正确的语法
SQL语句:
CREATE TABLE
bmxData
。new_table
()
知道为什么吗? 我不知道我做错了什么......
您需要添加至少一列:
CREATE TABLE `bmxData`.`new_table`(col INT);
一些RDBMS允许定义没有像PostgreSQL这样的显式用户列的表:
CREATE TABLE tab();
关于具有零列的表的含义的关系理论有一些讨论。 也被描述为零度关系 。
关系理论研究员CJ Date指的是TABLE_DUM
和TABLE_DEE
。 两者都没有列,但区别在于TABLE_DUM
没有列而没有行,而TABLE_DEE
有一行(即使该行没有列)。
请参阅“深度数据库:从业者的关系理论”摘录: https : //flylib.com/books/en/2.214.1.38/1/
因此,以下查询将不返回任何行:
SELECT * FROM TABLE_DUM CROSS JOIN MyTable;
而此查询将返回与MyTable
相同的行和列:
SELECT * FROM TABLE_DEE CROSS JOIN MyTable;
因此,没有列的表有一些先例和意义。 您可以通过类比将其视为0和1在乘法中的作用:
但是,标准SQL不允许它。 SQL没有完全忠实地实现关系理论的所有概念。 在这种情况下,标准SQL将表定义为至少有一列。 SQL的设计者认为没有列的表不是那么有趣,以至于证明了SQL语言的支持。
如果PostgreSQL或SQL的其他一些实现决定允许没有列的表,那么它们就是将它作为标准SQL的扩展。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.