【问题标题】:What's the problem in this mysql statement?这个mysql语句有什么问题?
【发布时间】:2020-04-09 13:05:38
【问题描述】:

我想执行以下语句来创建一个用于存储各种详细信息的表。这里的电影名称将在那里存储“整数值的收视率”请帮我解决这个问题

CREATE TABLE users (
    id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    website VARCHAR,
    aboutyou VARCHAR,
    gender VARCHAR(50) NOT NULL,
    avengers INT NOT NULL,
    inception INT NOT NULL,
    godfather INT NOT NULL,
    mrrobot INT NOT NULL,
    xfiles INT NOT NULL,
    friends INT NOT NULL
);

我从 phpmyadmin 收到错误:

MySQL 说:文档

#1064 - 您的 SQL 语法有错误;查看与您的 MariaDB 服务器版本相对应的手册,了解在 'aboutyou VARCHAR, 附近使用的正确语法, 性别 VARCHAR(50) 非空, 复仇者联盟 INT NOT' 在第 6 行

【问题讨论】:

  • 这是一个 SQL 错误而不是 PHP。这里没有关于 PHP 的内容。我也会强烈地重新考虑这个模式。电视节目/电影可能不应该出现在此表中。有一个 user 表,有一个 entertainment 表(它将存储电影和节目标题),然后有一个 user_to_entertainment(或 user_entertaiment_rating)表来存储用户 ID、娱乐 ID 和他们的评级。
  • 谢谢!我一定会考虑您的建议,实际上我是初学者,这就是我的方法较弱的原因。我最近开始学习有关 php 和 mysql 的东西。顺便说一句,您的想法真的很有创意,再次感谢;)
  • 您可以在此处阅读有关该逻辑的更多信息,en.wikipedia.org/wiki/First_normal_form

标签: mysql database mysql-error-1064 create-table


【解决方案1】:

好吧,我想如果你仔细看看这个查询,你自己就会明白了!

我猜这个错误是由于你没有提供字符串长度的变量。您只指定要使用 VARCHAR 作为网站和 aboutyou 列的数据类型。但正确的形式是 VARCHAR(n),其中 n 是您希望字符串的字符数。我尝试自己实现它,当我在括号中给出一个数字时,它运行良好。

举个例子,试试:

CREATE TABLE users (
    id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    created_at VARCHAR(5),
    website VARCHAR(55),
    about_you VARCHAR(255),
    gender VARCHAR(50) NOT NULL,
    avengers INT NOT NULL,
    inception INT NOT NULL,
    godfather INT NOT NULL,
    mrrobot INT NOT NULL,
    xfiles INT NOT NULL,
    friends INT NOT NULL
);

我希望这有助于并回答您的问题。 祝你的项目好运!

【讨论】:

    【解决方案2】:

    像处理性别一样给它们长度,这样会起作用。

     website VARCHAR(50),
     aboutyou VARCHAR(50),
    
     gender VARCHAR(50) NOT NULL,
    

    【讨论】:

    • 谢谢!它有帮助
    猜你喜欢
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多