-2

尝试在数据库中创建表时出现此错误..

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOT NULL, `call_code_id` INT(11) UNSIGNED NOT NULL, `result_code` ENUM NOT NULL,' at line 1 

我做错了什么给我一个错误?这是我的mysql代码。

CREATE TABLE  `phone_calls` (

`phone_call_id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`account_id` INT( 11 ) UNSIGNED NOT NULL ,
`team_id` INT( 11 ) UNSIGNED NOT NULL ,
`campaign_id` INT( 11 ) UNSIGNED NOT NULL ,
`call_code` ENUM NOT NULL ,
`call_code_id` INT( 11 ) UNSIGNED NOT NULL ,
`result_code` ENUM NOT NULL ,
`result_code_id` INT( 11 ) UNSIGNED NOT NULL ,
`time_zone_id` INT( 11 ) UNSIGNED NOT NULL ,
`trigger_on` DATETIME NOT NULL ,
`created_on` DATETIME NOT NULL ,
`first_attempt_on` DATETIME NOT NULL ,
`first_attempt_by` INT( 11 ) UNSIGNED NOT NULL ,
`first_attempt_by_name` CHAR( 30 ) NOT NULL ,
`call_subject` CHAR( 50 ) NOT NULL ,
`status` TINYINT( 2 ) NOT NULL COMMENT  '0= purge, 1=active, 2 = in progress, 3 = completed',
`last_attempt_on` DATETIME NOT NULL ,
`last_attempt_by` INT( 11 ) UNSIGNED NOT NULL ,
`last_attempt_by_name` CHAR( 30 ) NOT NULL ,
`total_attempts` TINYINT( 3 ) NOT NULL DEFAULT  '0',
`modified_by` INT( 11 ) UNSIGNED NOT NULL ,
`modified_by_name` CHAR( 30 ) NOT NULL ,
`client_id` INT( 11 ) UNSIGNED NOT NULL ,
`last_call_id` INT( 11 ) UNSIGNED NOT NULL ,
`call_direction` ENUM NOT NULL COMMENT  'INBOUND or OUTBOUND',
`call_notes` TEXT NOT NULL ,
INDEX (  `account_id` ,  `team_id` ,  `campaign_id` ,  `call_code` ,  `call_code_id` ,  `result_code` ,  `result_code_id` ,  `time_zone_id` ,  `first_attempt_by` ,  `last_attempt_by` ,  `modified_by` ,  `client_id` ,  `last_call_id` )
) ENGINE = MYISAM

非常感谢您的时间:)

4

2 回答 2

1

您对 ENUM 的定义不正确,请检查:

文件

我相信你可以在那里找到你的答案:)

于 2013-02-26T18:06:32.457 回答
0

您需要为每一enum列定义可能的值,如下所示:

CREATE TABLE  `phone_calls` (
`phone_call_id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`account_id` INT( 11 ) UNSIGNED NOT NULL ,
`team_id` INT( 11 ) UNSIGNED NOT NULL ,
`campaign_id` INT( 11 ) UNSIGNED NOT NULL ,
`call_code` ENUM('foo','bar') NOT NULL ,
`call_code_id` INT( 11 ) UNSIGNED NOT NULL ,
`result_code` ENUM('foo','bar') NOT NULL ,
`result_code_id` INT( 11 ) UNSIGNED NOT NULL ,
`time_zone_id` INT( 11 ) UNSIGNED NOT NULL ,
`trigger_on` DATETIME NOT NULL ,
`created_on` DATETIME NOT NULL ,
`first_attempt_on` DATETIME NOT NULL ,
`first_attempt_by` INT( 11 ) UNSIGNED NOT NULL ,
`first_attempt_by_name` CHAR( 30 ) NOT NULL ,
`call_subject` CHAR( 50 ) NOT NULL ,
`status` TINYINT( 2 ) NOT NULL COMMENT  '0= purge, 1=active, 2 = in progress, 3 = completed',
`last_attempt_on` DATETIME NOT NULL ,
`last_attempt_by` INT( 11 ) UNSIGNED NOT NULL ,
`last_attempt_by_name` CHAR( 30 ) NOT NULL ,
`total_attempts` TINYINT( 3 ) NOT NULL DEFAULT  '0',
`modified_by` INT( 11 ) UNSIGNED NOT NULL ,
`modified_by_name` CHAR( 30 ) NOT NULL ,
`client_id` INT( 11 ) UNSIGNED NOT NULL ,
`last_call_id` INT( 11 ) UNSIGNED NOT NULL ,
`call_direction` ENUM('foo','bar') NOT NULL COMMENT  'INBOUND or OUTBOUND',
`call_notes` TEXT NOT NULL ,
INDEX (`account_id` ,  `team_id` ,  `campaign_id` ,  `call_code` ,  `call_code_id` , `result_code` ,  `result_code_id` ,  `time_zone_id` ,  `first_attempt_by` ,  `last_attempt_by` ,  `modified_by` ,  `client_id` ,  `last_call_id` )
) ENGINE = MYISAM

另见:http ://dev.mysql.com/doc/refman/5.0/en/enum.html

于 2013-02-26T18:09:40.830 回答