・WindowsXP(SP2)IIS5.1
・PHP 5.2.5 Win32
・MySQL 5.1.22 RC Win32
・phpMyAdmin 2.11.4
会社マスター(KAISYA)に管理番号、Eメール、氏名、備考、更新日時とあります。これらのうち、
・「管理番号」に、主キー、ユニーク制約、AUTO_INCREMENTを。
・「Eメール」に、主キー、ユニーク制約を
それぞれつけるにはどのようなSQL文を発行したらいいかご教示ください。
phpMyAdminで発行した下記のSQL文ですと、
CREATE TABLE IF NOT EXISTS `KAISYA` (
`KanriNo` int unsigned AUTO_INCREMENT COMMENT '管理番号',
`Email` varchar( 80 ) NOT NULL default '' COMMENT 'Eメール',
`Namae` varchar( 40 ) default NULL COMMENT '氏名',
`Bikou` text COMMENT '備考',
`UpdateDate` timestamp NOT NULL default '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP COMMENT '更新日時'
) ENGINE = InnoDB DEFAULT CHARSET = utf8
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
とエラーになってしまいます。
(このSQL例文には、主キー、ユニーク制約の件は未反映です)
`KanriNo` int ....の行を削除すればSQL は正常に実行されるのですが。
No.1ベストアンサー
- 回答日時:
主キー = ユニーク でもありますので、
主キー設定するのであれば、ユニークは必要ありません
また、同一table内で別々のプライマリキーを設定することはできませんので、KanriNoとEmailの組での複合キーとしなくてはなりません
クリエイト文一発で作るのであればこんな感じです
CREATE TABLE IF NOT EXISTS `kaisya` (
`KanriNo` int(10) unsigned NOT NULL AUTO_INCREMENT ,
`Email` varchar(80) NOT NULL DEFAULT '',
`Namae` varchar(40) DEFAULT NULL ,
`Bikou` text ,
`UpdateDate` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`KanriNo`,`Email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
inu2さん、ご回答ありがとうございました。
ご教示いただいたCREATE文で一発解決しました。
#2でアドバイスいただいた件も大変参考になりました。
ありがとうございました。
No.2
- 回答日時:
No1です
さっき回答した例だと
複合キー設定になっているという前提上、
KanriNo と Emailの複合キーでのユニークになりますので
質問の意図を加味すると
UNIQUEは必要ですね
~
PRIMARY KEY (`KanriNo`,`Email`),
UNIQUE KEY `KanriNo` (`KanriNo`),
UNIQUE KEY `Email` (`Email`)
~
これを付け加えてください
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- MySQL SHOW CREATE TABLE posts;これって何ですか? 3 2022/08/28 22:57
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- PHP php エラー 2 2022/10/23 16:43
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- MySQL あと、MySQLの文字コードはutf8 気になりますね 1 2022/12/01 07:22
- MySQL 何にかが違うから エラーなんでしょうね! 2 2022/09/18 05:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
列が存在しないと言われる
-
DBから日付順に指定件数の削除...
-
■一番最初に値が入っている(Nul...
-
大量データを更新したら、処理...
-
constraint と index の違い
-
postgreSQLの日付を変数にする...
-
postgres ストアドファンクショ...
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
アクセスクエリの計算
-
「直需」の意味を教えてください
-
Oracle 2つのDate型の値の差を...
-
Access テキスト型に対する指定...
-
Accessでテーブル名やクエリ名...
-
Accessクエリでの、LIKE条件
-
作番ってどういう意味でしょうか?
-
エクセルグラフの凡例スペース
-
FROM の中で CASE を使えるでし...
-
テーブルの存在チェックについて
-
Accessでテーブルの値をテキス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
列が存在しないと言われる
-
PostgreSQLで表結合+DELETEしたい
-
0の除算
-
長いSQL文を実行するには?
-
alter tableすると、処理が止ま...
-
INSERTできるレコード数を制限...
-
constraint と index の違い
-
DBから日付順に指定件数の削除...
-
COPY時のtimestamp型について
-
動的に生成したカラムを使ったF...
-
Null値を無視してユニークにしたい
-
postgreSQLの日付を変数にする...
-
INSERTできない
-
DB2 「既存カラムへのnot null...
-
大量データを更新したら、処理...
-
SQLite:項目が存在しない場合の...
-
SQLで特定データがNULLなら別デ...
-
複数キーワードでのあいまい検索
-
powergres(postgres)にalter文...
-
DB2でUNIQUE制約を削除したい
おすすめ情報