尝试使用字段创建表时出现mysql错误

时间:2013-02-26 18:02:06

标签: 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 

我为此做了什么来给我一个错误? 这是我的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

非常感谢您的时间:)

2 个答案:

答案 0 :(得分:1)

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

Documention

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

答案 1 :(得分: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