私は38.000レコードのテーブルを持っていますが、ID
のような自動増分カラムはありません。
ID
列を追加する必要があります。問題が発生する可能性がありますか?テーブルの後に新しいID(自動インクリメント)を追加する際の問題
答えて
どのフィールドにも定義が変更されると、変更は「破壊的」になります。このような変更をデータ移行として扱うことが最善です。私はこれをMySQLでやっていませんが、SQL Serverに自動ナンバリングを追加しなければなりませんでした。基本的な考え方は同じです。
MySQLにはフィールドをリセットせずに自動インクリメントを追加する仕組みがあるかもしれないので、ドキュメントをチェックしてください。もしそうなら、それをSQL経由で実行すれば問題は解決します。一般に、これらのタイプの変更はツールを使用して視覚的に行うことをお勧めします。ほとんどのツールはメゾログで非常に破壊的です。
phpMyAdminで新しいフィールドを追加しました。 Orederingはうまくいきませんが、重要ではありません。ありがとう – Bobo
"トラブルがあるかもしれません?"
だけでレコードを挿入するトラブルがあるかもしれません。しかし...
一般的に、新しいフィールドを追加すると、通常はそれが自動インクリメント列だかどうか、行うことはかなり安全です。すべての依存関係が不明な場合は、問題の原因となる可能性の高い列を変更または削除しています。
安全のために、念のために、しかし、私は最初のコピー(テスト)のバージョンでそれを試してみたし、最初のテスト版と照らし合わせてアプリ(複数可)を実行します。いずれにしてもテスト環境を使用するのがよい方法です。
あなたはあなたが心配しているどのようなタイプのトラブルについてより具体的になることができますか?
あなたのテーブルに他人との関係がない場合は、だけ問題なく追加できます。
あなたは(おそらく古い主キーに一意のインデックスを追加します)古いプライマリキーを削除し、それに応じてテーブルをアップロードする必要があります。
はそのように実行します。が
はそのように新しい列を追加することを
ALTER TABLE XXX DROP PRIMARY KEY
- のような主キーを削除し、データベースのダンプを作成します
ALTER TABLE XXX add column Id INT NOT NULL AUTO_INCREMENT FIRST, ADD primary KEY Id(Id)
テーブルが表示され、AutoIncが更新されます。
これは私がMySQLのワークベンチで試してみましたソリューションです:
ALTER TABLE `tableName` CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT ;
これは正しい方法であれば、私は知らないが、私はまだ私のJava EEアプリケーションのいずれかの問題に気付きませんでした。
私はIDがキーの一部だったと思いますが、そうでなければエラーになります。 – siddhusingh
これは、MySQLのテーブルに自動インクリメントIDを追加します。
ALTER TABLE `your_table_name` ADD `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
あなたのテーブル上のデータの量に応じて、それが完了するまでに数分かかることがあります。
あなたはあなたがこの例で
ALTER TABLE `category`
ADD PRIMARY KEY (`cat_id`);
ALTER TABLE `category`
MODIFY `cat_id` int(11) NOT NULL AUTO_INCREMENT;
を見ることができる自動増加フィールド
としてそれを作ることができる前に、あなたは、私は非常に大規模なデータを扱うとIDを持っていた最初の主キーとして追加する必要があるかもしれません列にはNULLSが入っています。私は数字でいっぱいにするために、次のSQLを実行する...私は私の主キーにid列を設定しました。
set @row = 0;
UPDATE philadelphia.msg_geo_sal SET id = @row := @row + 1;
- 1. 自動インクリメントの "id"カラムの問題
- 2. 新しい "子"インサートを持つテーブルのIDを自動インクリメント
- 3. 自動インクリメント問題
- 4. MySQLのテーブルに自動インクリメント列の種類を追加する
- 5. MySQLの自動インクリメント問題
- 6. テキストファイルに新しい行を追加する際の問題
- 7. DOMに新しい要素を追加する際の問題?
- 8. コードの背後にあるテーブルに新しい行を追加する問題
- 9. 自動インクリメントIDを使用したデータベースへの値の追加
- 10. 自動インクリメントされた外部キーを追加したいテーブルに新しい行を追加しました
- 11. dynamodb:レコードをテーブルに追加する際にキーフィールドに自動インクリメント番号を追加する方法
- 12. MySQLテーブルの自動インクリメントIDの固定
- 13. 新しいulsを追加する際の問題
- 14. TYPO3で新しい言語を追加する際の問題
- 15. 自動インクリメント問題は、MySQL
- 16. 自動インクリメントIDの
- 17. 自動インクリメントIDでHibernateの問題MYSQL 5
- 18. テーブルにmysql FOREIGN KEYを追加する際の問題
- 19. mysqlテーブルに日付を追加する際の問題
- 20. SQL Server CEの自動インクリメントの問題
- 21. 既存の昇順列に自動インクリメントIDを追加しますか?
- 22. sqlite:どのようにして既存のテーブルに自動インクリメントIDを追加できますか?
- 23. 自動インクリメントの前に文字を自動的に追加
- 24. SQLiteのIDを自動インクリメント
- 25. モジュールのデフォルトIDフィールドに自動インクリメントを追加する方法Suit CRM
- 26. dxDatagridに追加する際の問題
- 27. パンダのデータフレームに新しい行を追加する際の問題
- 28. Reachabilityクラスを追加する際のエラー「自動参照カウントの問題」
- 29. DACに新しいエクステンションをグラフに追加する際の問題
- 30. tabhostにコントロールを動的に追加する際の問題
すでに行を一意に識別する整数ID列はありますか? – BoltClock