【问题标题】:What's wrong with this very simple mysql create table statement?这个非常简单的 mysql create table 语句有什么问题?
【发布时间】:2013-09-06 13:38:02
【问题描述】:
create table foo(
id UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
barbaz VARCHAR(50) CHARACTER SET utf8
)

[Edit]:好的,我不小心删除了 INT,我没有意识到(这些语句是自动生成的)。[/Edit]

这给了我这个错误:

您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以了解在 'UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY 附近使用的正确语法, barbaz VARCHAR(50) 字符集'

是的,我使用 Maria DB 代替 Fedora 中的 mysql,但据说它的语法与 Mysql 完全相同。

感谢您的帮助。

【问题讨论】:

  • 您没有声明id 列的类型

标签: mysql sql mariadb


【解决方案1】:

UNSIGNED 不是类型。您需要指定类型(很可能是INT):

id INT UNSIGNED ...

【讨论】:

  • 谢谢,我已经调试了一个小时关于编码的东西,我不小心删除了语句中的 INT。我以为还是编码问题。
【解决方案2】:

试试这个:

  CREATE TABLE `foo`(  
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `barbaz` VARCHAR(50) CHARSET utf8,
  PRIMARY KEY (`id`)
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 2012-06-12
    相关资源
    最近更新 更多