現在、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'
は今、私はこの非常にサイト上でそれに対する解決策を見つけました。 auto_incrementにunsignedを追加するだけで、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の主キーを持つ必要はありません。あなたは、通常の数値の自動インクリメントプライマリキーを使い続け、別の文字列を「ユニーク」としてマークすることができます。 –