[解決済み】MySQLで主キーを削除する
2022-04-13 18:28:44
質問
私は、ライブMySQLデータベース上でuser_customersをパーミッションにマッピングする以下のテーブルスキーマを持っています。
mysql> describe user_customer_permission;
+------------------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+---------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| user_customer_id | int(11) | NO | PRI | NULL | |
| permission_id | int(11) | NO | PRI | NULL | |
+------------------+---------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
user_customer_id と permission_id の主キーを削除して、id の主キーを保持したいのですが、どうすればいいですか?
コマンドを実行すると
alter table user_customer_permission drop primary key;
以下のようなエラーが発生します。
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
カラムの主キーを削除するにはどうすればよいですか?
どのように解決するのですか?
インデックスがない場合、オートインクリメントのカラムを維持するのは非常に高価になるため、以下のようになります。
MySQL
は、オートインクリメントカラムがインデックスの左端にあることを要求しています。
キーを削除する前に、autoincrement プロパティを削除する必要があります。
ALTER TABLE user_customer_permission MODIFY id INT NOT NULL;
ALTER TABLE user_customer_permission DROP PRIMARY KEY;
複合型であることに注意してください。
PRIMARY KEY
という3つのカラムをすべてカバーする
id
は一意であることが保証されない。
たまたま一意であった場合、それを
PRIMARY KEY
と
AUTO_INCREMENT
をもう一度。
ALTER TABLE user_customer_permission MODIFY id INT NOT NULL PRIMARY KEY AUTO_INCREMENT;
関連
-
[解決済み] whereステートメントによるmysqlの一括更新
-
[解決済み] mysqladminのフラッシュホストでブロックを解除する方法
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] MySQLのAUTO_INCREMENTをリセットする方法
-
[解決済み] MySQLの複数行を1つのフィールドに連結することはできますか?
-
[解決済み] MySQLで'insert if not exists'を行うにはどうしたらいいですか?
-
[解決済み] Sqliteの複数カラムの主キー
-
[解決済み】既存テーブルへの外部キー追加
-
[解決済み】カラムを変更し、デフォルト値を変更する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】MAMPのmysqlサーバーが起動しない。mysqlのプロセスが起動していない
-
[解決済み】mysql.plugin テーブルを開くことができません。mysql_upgradeを実行して作成してください。
-
[解決済み】MySQL 派生テーブルはすべて独自のエイリアスを持つ必要があります。
-
[解決済み] エラー 1115 (42000)。不明な文字セットです。'utf8mb4'
-
[解決済み] WHEREで集計関数は使用できません "というエラーを回避する方法
-
[解決済み] MySQLクエリ GROUP BY 日/月/年
-
[解決済み] #1136 - 列数が 1 行目の値数と一致しません。
-
[解決済み] 「他のデータベースへのクエリを無視する」コマンドライン
-
[解決済み] mysql サーバーがクラッシュした -mysqld got signal 6
-
[解決済み】MySQLのテーブルから制約を削除する方法は?