0

这是我在 PHPMyAdmin 中编写的一个简单的 CREATE TABLE 语句。好的,我知道我可以在 PHPMyAdmin 中以简单的方式做到这一点,但我喜欢完全控制。这是声明:

CREATE TABLE profile
(
id int NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
type int(1) NOT NULL,
view int(1) NOT NULL default '1',
ver int(1) NOT NULL default '2',
email NOT NULL varchar(32),
password NOT NULL varchar(16),
first varchar(32),
last varchar(32),
site varchar(64),
address varchar(32),
city varchar(32),
zip int,
state char(2),
country varchar(50),
about text,
datereg int(20)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
4

5 回答 5

3

我换了

view int(1) NOT NULL default '1',
ver int(1) NOT NULL default '2',
email NOT NULL varchar(32),
password NOT NULL varchar(16),

view int(1) NOT NULL default 1,
ver int(1) NOT NULL default 2,
email varchar(32) NOT NULL ,
password varchar(16) NOT NULL ,

它奏效了

于 2011-07-22T04:26:45.047 回答
3

有不止一个错误使您的 SQL 语句无法正常工作。

试试这个:

CREATE TABLE `profile` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `type` int(1) NOT NULL,
  `view` int(1) NOT NULL DEFAULT '1',
  `ver` int(1) NOT NULL DEFAULT '2',
  `email` varchar(32) NOT NULL,
  `password` varchar(16) NOT NULL,
  `first` varchar(32),
  `last` varchar(32),
  `site` varchar(64),
  `address` varchar(32),
  `city` varchar(32) ,
  `zip` int(11),
  `state` char(2),
  `country` varchar(50),
  `about` text,
  `datereg` int(20),
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

一些补充:

于 2011-07-22T04:29:56.733 回答
2

试试这个=)

CREATE TABLE `db`.`profile` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `type` INT(1) NOT NULL ,
  `view` INT(1) NOT NULL DEFAULT 1 ,
  `ver` INT(1) NOT NULL DEFAULT 2 ,
  `email` VARCHAR(32) NULL ,
  `password` VARCHAR(16) NULL ,
  `first` VARCHAR(32) NULL ,
  `last` VARCHAR(32) NULL ,
  `site` VARCHAR(64) NULL ,
  `address` VARCHAR(32) NULL ,
  `city` VARCHAR(32) NULL ,
  `zip` INT NULL ,
  `state` CHAR(2) NULL ,
  `country` VARCHAR(50) NULL ,
  `about` TEXT NULL ,
  `datereg` INT(20) NULL ,
  PRIMARY KEY (`id`) )
ENGINE = MyISAM DEFAULT CHARSET=utf8;
于 2011-07-22T04:29:18.373 回答
1

view 是一个 MySQL 关键字。如果要使用具有相同名称的列,则必须用反引号将其括起来,例如

`view` int(1) NOT NULL default 1,
于 2011-07-22T04:23:15.030 回答
0

在没有看到错误是什么的情况下,我会说它失败了,因为您尝试使用 MySQL 保留关键字命名列 - 我的猜测是view

如果您在列名周围放置反引号 `,它将允许您使用保留字。请记住,该表上的任何其他查询也需要使用保留字的列名周围的反引号。

例如。

CREATE TABLE profile
(
`id` int NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
`type` int(1) NOT NULL,
`view` int(1) NOT NULL default '1',
`ver` int(1) NOT NULL default '2',
`email` NOT NULL varchar(32),
`password` NOT NULL varchar(16),
`first` varchar(32),
`last` varchar(32),
`site` varchar(64),
`address` varchar(32),
`city` varchar(32),
`zip` int,
`state` char(2),
`country` varchar(50),
`about` text,
`datereg` int(20)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
于 2011-07-22T04:22:54.183 回答