我正在尝试使用mysql工作台创建一个表。下面是sql命令:
CREATE TABLE `bmxData`.`new_table` ();
然而,我在执行以下操作时遇到了一个错误:-
正在执行:
创建表 bmxData
. new_table
();
操作失败:将sql脚本应用于数据库时出错。
错误1064:您的sql语法有错误;检查与mysql服务器版本相对应的手册,以获得在第1行的“)”附近使用的正确语法
sql语句:
创建表 bmxData
. new_table
()
知道为什么吗?我不知道我做错了什么。。。
2条答案
按热度按时间gudnpqoy1#
您至少需要添加一列:
一些rdbms允许在没有显式用户列的情况下定义表,如postgresql:
dbfiddle演示
9nvpjoqh2#
关于零列表的意义,在关系论中有一些讨论。也称为零度关系。
关系理论研究者c。j。日期指
TABLE_DUM
以及TABLE_DEE
. 两者都没有列,但区别在于TABLE_DUM
没有列和行,而TABLE_DEE
有一行(即使该行没有列)。参见“深入数据库:从业者的关系理论”摘录:https://flylib.com/books/en/2.214.1.38/1/
因此,以下查询将不返回任何行:
而此查询将返回与
MyTable
:所以对于一个没有列的表来说有一些先例和意义。你可以把它比喻成0和1在乘法中的作用:
0 x任何数字都是0
1 x任何数字都是相同的数字
但是,标准sql不允许这样做。sql并不能完全忠实地实现关系理论的所有概念。在本例中,标准sql将表定义为至少有一列。sql的设计者认为,没有列的表不太有趣,不足以证明sql语言支持的合理性。
如果postgresql或其他一些sql实现决定允许一个没有列的表,那么它们是作为标准sql的扩展来做的。