【问题标题】:Whats wrong in my sql query?mysql查询有什么问题?
【发布时间】:2015-08-18 10:31:49
【问题描述】:

这里我正在尝试创建一个新表,但我不知道创建表时我做错了什么。

SQL 查询:

CREATE DATABASE IF NOT EXISTS wan_ecommerce;
USE wan_ecommerce
CREATE TABLE IF NOT EXISTS users (
 user_id int(11) NOT NULL AUTO_INCREMENT COMMENT,
 user_name varchar(64) COLLATE utf8_unicode_ci NOT NULL COMMENT,
 user_password_hash varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT,
 user_email varchar(64) COLLATE utf8_unicode_ci NOT NULL COMMENT,
 user_active tinyint(1) NOT NULL DEFAULT '0' COMMENT,
 user_activation_hash varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT,
 user_password_reset_hash char(40) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT,
 user_password_reset_timestamp bigint(20) DEFAULT NULL COMMENT,
 user_rememberme_token varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT,
 user_failed_logins tinyint(1) NOT NULL DEFAULT '0' COMMENT,
 user_last_failed_login int(10) DEFAULT NULL COMMENT,
 user_registration_datetime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
 user_registration_ip varchar(39) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0.0.0.0',
 PRIMARY KEY (`user_id`),
 UNIQUE KEY user_name (`user_name`),
 UNIQUE KEY user_email (`user_email`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='user data';

当我运行它时,我得到一个错误。我在use wan_ecommerce; 之后添加了;,但我仍然得到:

1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法使用 靠近'

user_name varchar(64) COLLATE utf8_unicode_ci NOT NULL COMMENT,

user_passwo' 在第 2 行

我在这里做错了什么?

我该如何解决这个问题?

【问题讨论】:

  • 您在USE wan_ecommerce 末尾错过了;
  • 在第二行末尾使用分号。
  • 使用 wan_ecommerce ---> ;

标签: mysql sql


【解决方案1】:

使用分号结束每个语句。

CREATE DATABASE IF NOT EXISTS wan_ecommerce;
USE wan_ecommerce; -- <----- semi colon was missing
CREATE TABLE IF NOT EXISTS users (
-- ....

【讨论】:

  • user_id int(11) NOT NULL AUTO_INCREMENT COMMENT, 更改为 user_id int(11) NOT NULL AUTO_INCREMENT COMMENT 'some description about the field here',。关键字COMMENT用于对字段或表格添加注释。
  • 如果您不想为每个字段添加 cmets,只需从脚本中删除那些 'COMMENT's 并执行。
【解决方案2】:

“评论”是关键字。如果你使用它,你必须在流动的'COMMENT'中添加描述,比如这个代码:

CREATE DATABASE IF NOT EXISTS wan_ecommerce;
USE wan_ecommerce
CREATE TABLE IF NOT EXISTS users (
 user_id int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
 user_name varchar(64) COLLATE utf8_unicode_ci NOT NULL COMMENT 'name',
 user_password_hash varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT 'password_hash',
 user_email varchar(64) COLLATE utf8_unicode_ci NOT NULL COMMENT 'email',
 user_active tinyint(1) NOT NULL DEFAULT '0' COMMENT 'active',
 user_activation_hash varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'activation_hash',
 user_password_reset_hash char(40) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'password_reset_hash',
 user_password_reset_timestamp bigint(20) DEFAULT NULL COMMENT 'password_reset_timestamp',
 user_rememberme_token varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'rememberme_token',
 user_failed_logins tinyint(1) NOT NULL DEFAULT '0' COMMENT 'failed_logins',
 user_last_failed_login int(10) DEFAULT NULL COMMENT 'last_failed_login',
 user_registration_datetime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
 user_registration_ip varchar(39) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0.0.0.0',
 PRIMARY KEY (`user_id`),
 UNIQUE KEY user_name (`user_name`),
 UNIQUE KEY user_email (`user_email`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='user data';

如果你不需要这个'COMMENT',你可以删除它。代码如下:

CREATE DATABASE IF NOT EXISTS wan_ecommerce;
USE wan_ecommerce

CREATE TABLE IF NOT EXISTS users (
 user_id int(11) NOT NULL AUTO_INCREMENT,
 user_name varchar(64) COLLATE utf8_unicode_ci NOT NULL,
 user_password_hash varchar(255) COLLATE utf8_unicode_ci NOT NULL,
 user_email varchar(64) COLLATE utf8_unicode_ci NOT NULL,
 user_active tinyint(1) NOT NULL DEFAULT '0',
 user_activation_hash varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL,
 user_password_reset_hash char(40) COLLATE utf8_unicode_ci DEFAULT NULL,
 user_password_reset_timestamp bigint(20) DEFAULT NULL,
 user_rememberme_token varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
 user_failed_logins tinyint(1) NOT NULL DEFAULT '0',
 user_last_failed_login int(10) DEFAULT NULL,
 user_registration_datetime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
 user_registration_ip varchar(39) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0.0.0.0',
 PRIMARY KEY (`user_id`),
 UNIQUE KEY user_name (`user_name`),
 UNIQUE KEY user_email (`user_email`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='user data';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-29
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多