mysql - 使用数据类型为 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
解决方案
VARCHAR()
需要一个长度,但文本类型没有。所以只需使用:
CREATE TABLE `test` (
name LONGTEXT,
lastedit LONGTEXT,
data LONGTEXT,
type LONGTEXT,
lastEdit2 LONGTEXT
);
也就是说,LONGTEXT
应该谨慎使用。我很难想象一个以 Mbytes 或 Gbytes 为单位来衡量的名称。
我将最后一列的名称更改为,lastEdit2
因为表中的两列不能具有相同的名称。
推荐阅读
- javascript - 如何使用 JSDoc 记录符号索引签名以符合打字稿?
- sql - CASE 语句别名上的 WHERE 子句
- delphi-10.2-tokyo - vclactnband250.bpl 在非 delphi 机器上丢失/运行时包是错误的
- sql-server - Azure SQL 数据库表变量排序规则
- php - 在 Woocommerce 中为可变产品设置最小单位显示价格
- amazon-web-services - AWS Cloudformation - 挂载到现有文件系统
- php - 具有热链接保护和低内存使用率的 Laravel 下载响应
- vba - Datediff 不适用于 VBA 查询以在 Excel 中访问
- anaconda - Spyder 终端在哪里(是的,我下载了它)?
- time - ISO-8601 UTC 和 Unix 时间戳之间是否存在一对一关系?