プライマリキーが存在する場合のみ削除できるクエリが必要です。プライマリキーが存在する場合はドロップする
ALTER TABLE tablename DROP PRIMARY KEY;
これが存在しない場合はエラーを返しますが、別のデータベースでクエリを実行する必要があります。
プライマリキーが存在する場合のみ削除できるクエリが必要です。プライマリキーが存在する場合はドロップする
ALTER TABLE tablename DROP PRIMARY KEY;
これが存在しない場合はエラーを返しますが、別のデータベースでクエリを実行する必要があります。
私はこれを使用することをお勧めします:
SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.',TABLE_NAME,
' DROP PRIMARY KEY; ANALYZE TABLE ', TABLE_SCHEMA, '.',TABLE_NAME, ';')
FROM information_schema.COLUMNS
WHERE CONCAT(TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME) IN
(SELECT CONCAT(TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME)
FROM INFORMATION_SCHEMA.STATISTICS
WHERE INDEX_NAME = 'PRIMARY' -- *Required* to get only the primary keys from the statistics table.
-- *Optional*
AND TABLE_SCHEMA = 'clients_database');
WHERE
句もオプションです。ANALYZE TABLE ', TABLE_SCHEMA, '.',TABLE_NAME, ';'
を削除できます。私は、標準化技術を研究し利用する際にinformation_schemaを利用します。あなたが必要としたり、テーブルやカラムについて知りたいと思う
Just about
すべてが
データベース/ TABLE_SCHEMAのいずれか(該当する場合)には、いくつかのシステムテーブルに住ん:
こうした "performance_schema"、 "情報" スキーマ」、 "SYS"、および "のmysql" として
内部スキーマは、デフォルトでは非表示です。 「メタデータと内部スキーマの表示」プリファレンスを切り替えて、オブジェクト・ブラウザーに表示します。 "。"で始まるスキーマこの設定によっても制御されます。
注:Here's something similar that has been created.
は、この情報がお役に立てば幸い!
乾杯、
ジェイ
私は簡単なオプションは、このかもしれないと思う:
最初に行く: 'YourDatabase'>テーブル>あなたのテーブル名>キー> 'のような制約をコピーしますPK__TableName__0001'
これを実行します。
Query:alter Table 'TableName' drop constraint PK__TableName__0001
主キーが最初に存在するかどうかを確認するために 'INFORMATION_SCHEMA'を調べて、存在すれば主キーを削除してみてください。単一のクエリで行うことはできません。 – Raptor