首页 > 解决方案 > 使用数据类型为 longtext 的列创建表时 SQL 显示错误

问题描述

所以我创建了一个可以缓存和存储文件的框架,现在缓存源之一是主题模板的 xe_templates,我的查询看起来像这样

CREATE TABLE `test` (
    name LONGTEXT(4294967295),
    lastedit LONGTEXT(4294967295),
    data LONGTEXT(4294967295),
    type LONGTEXT(4294967295),
    lastEdit LONGTEXT(4294967295)
);

我得到的错误是这个


#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '(4294967295),
    lastedit LONGTEXT(4294967295),
    data LONGTEXT(42949672...' at line 2


标签: mysqlsql

解决方案


VARCHAR()需要一个长度,但文本类型没有。所以只需使用:

CREATE TABLE `test` (
    name LONGTEXT,
    lastedit LONGTEXT,
    data LONGTEXT,
    type LONGTEXT,
    lastEdit2 LONGTEXT
);

也就是说,LONGTEXT应该谨慎使用。我很难想象一个以 Mbytes 或 Gbytes 为单位来衡量的名称。

我将最后一列的名称更改为,lastEdit2因为表中的两列不能具有相同的名称。


推荐阅读