我正在嘗試使用SQL文件在phpMyAdmin中向我的數據庫添加一個表,然後用數據填充它。我已經成功地做了很多次,但是我遇到了一個嚴重的問題,無論我嘗試什麼,我都找不到解決方案。以前我用'int'作爲主鍵類型,但現在我必須使用'char'作爲我的主鍵類型。這是問題似乎來自哪裏。我在網上查找並嘗試了幾種解決方案,但都有不同的結果。所有結果都等於失敗。SQL - 'char'auto_increment問題
我已經在下面顯示了我的原始代碼,失敗並導致我在網上尋找解決方案,但無濟於事。
--
-- 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文件,所以真的這是我和我最後一項工作的巨大障礙。
您不必擁有char主鍵。您可以繼續使用常規的數字自動遞增主鍵,並將另一個字符列標記爲「唯一」。 –