SQL - 'char'auto_increment问题

时间:2016-06-12 18:51:52

标签: mysql sql syntax

我目前正在尝试使用SQL文件在phpMyAdmin中向我的数据库添加一个表,然后用数据填充它。我已成功地在很多场合完成了这项工作,但我遇到了一个严重的问题,无论我怎么做,我都找不到解决方案。以前我使用'int'作为我的主键类型,但我现在必须使用'char'作为我的主键类型。这就是问题似乎来自的地方。我已经在网上看了几个解决方案并尝试了不同的结果。所有结果均等失败。

我在下面显示的原始代码失败了,导致我在网上寻找解决方案,但也无济于事。

--
-- Table structure for table `practice`
--

CREATE TABLE `practice` (
`practice_Id` char(2) NOT NULL auto_increment,
`Practice_Name` varchar(20) NOT NULL,
`Practice_Address` varchar(50) NOT NULL,
PRIMARY KEY (`practice_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

--
-- Dumping data for table `practice`
--

INSERT INTO `practice` VALUES(P1, 'Practice Head Office', '27, The Hill, Glasgow');
INSERT INTO `practice` VALUES(P2, 'Practice Unit 1', 'Unit 1, Houston Estate, Glasgow');

当我尝试将此文件导入我的数据库时,我收到以下响应:

#1063 - Incorrect column specifier for column 'practice_Id' 

现在我在这个网站上找到了解决方案。只需将unsigned添加到auto_increment中,它就可以用作auto_increment与int和float一起使用。我将此添加到文件中,然后尝试再次导入它。再次失败给了我更多的错误,如下所示:

#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 'unsigned auto_increment,
`Practice_Name` varchar(20) NOT NULL,
`Practice_Add' at line 6  

我单独尝试取消签名,省略了auto_increment,但我得到了与上面相同的结果。

我真的需要帮助,因为这似乎无法通过。没有语法错误,所以没有任何意义。任何问题只是问,但我已经把我的尝试放在上面,我找到了所有的解决方案。我有这个问题的其他sql文件,所以这对我和我的上一次工作来说是一个巨大的障碍。

1 个答案:

答案 0 :(得分:0)

不可能通过。自动增量仅适用于数字字段。从语义上讲,“增加”字符串是没有意义的。是的,你可以说

'x' + 1 = 'y'

对于单个字符,但如何增加字符字符串?您将如何评估

"Bob" + 3

例如?