2013-02-26 76 views
-2

我得到这个错误,而试图在一个数据库中创建一个表的表..MySQL错误试图创建与现场

#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 

我在做什么wront这给我一个错误? 这是我的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 

非常感谢您的时间:)

+0

又该空ENUM是什么意思?您忘记指定枚举本身,如[本页]所示(http://dev.mysql.com/doc/refman/5.0/en/enum.html)。 – raina77ow 2013-02-26 18:04:46

回答

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

+0

谢谢你的作品 – Jaylen 2013-02-26 19:08:22

1

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

Documention

我敢肯定,你可以在那里找到答案:)

+0

谢谢。知道了 – Jaylen 2013-02-26 19:07:44