12
A
答えて
9
ALTER TABLE syntaxは、そのような可能性を提供していないようだ。
ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name
[alter_specification [, alter_specification] ...]
[partition_options]
ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name
partition_options
alter_specification:
table_options
[...]
| CHANGE [COLUMN] old_col_name new_col_name column_definition
[FIRST|AFTER col_name]
| MODIFY [COLUMN] col_name column_definition
[FIRST | AFTER col_name]
[...]
あなたが
CHANGE
やMODIFY
を使用すると、column_definitionはデータ タイプとに適用するすべての属性を含める必要があります新しい列である は、PRIMARY KEY
またはUNIQUE
などのインデックス属性よりも優先されます。属性 は元の定義にありますが、新しい 定義では指定されていません。私の場合は
+0
Alvaro、素敵な答えをありがとう!最後の段落は私の質問に対する明確な答えのように見えます。 – TMS
1
私はその後、より速く、簡単に私のC#のオブジェクトにデータをロードできるようにするには、「idSomething」に「id_something」からすべてのCOLUMNNAMESを変更するようでした。私はそれを行うためのスクリプトを探していましたし、それはあなたが、私が使用される主な機能持っている:( 最後に、私はここでのC# に自分でそれをやった見つけることは不可能になります。
を、私はそれが皆のために便利になりたいの! (あなたはINFORMATION_SCHEMAをハックしない限り)
public bool columnesRename(string oldName, string newName, string dataBase, string dataTable)
{
bool res = true;
string definicio = columnaDefinicioGet(oldName, dataBase, dataTable);
cmd.CommandText = String.Format("alter table {0} change {1} {2} {3} ", dataTable, oldName, newName, definicio);
Debug.WriteLine(String.Format("canviant taula {0}: {1} per {2}", dataTable, oldName, newName));
Debug.WriteLine(cmd.CommandText);
Debug.WriteLine(cmd.ExecuteNonQuery());
return res;
}
public string columnaDefinicioGet(string columna, string dataBase, string dataTable)
{
string definicio = "";
cmd.CommandText = String.Format
(
@"select column_type, is_nullable, extra, column_default from information_schema.columns where table_schema = '{0}' and table_name = '{1}' and column_name = '{2}'"
, dataBase, dataTable, columna
);
MySqlDataReader dr = cmd.ExecuteReader();
dr.Read();
string nulONo = (dr[1].ToString() == "NO") ? "NOT NULL" : "NULL";
string valorDefault = (dr[3].ToString() == "NULL" || dr[3].ToString() == "") ? dr[3].ToString() : "DEFAULT '" + dr[3].ToString() + "'";
definicio = String.Format("{0} {1} {2} {3}", dr[0], nulONo, dr[2], valorDefault);
dr.Close();
return definicio;
}
関連する問題
- 1. 列を繰り返し、ルールに従って名前を変更
- 2. mysqlで列の値が繰り返されるレコードを返す
- 3. Web.configファイルの変更を何度も繰り返さないようにする
- 4. テーブル内の列を繰り返す
- 5. 変更がなくてもMYSQLのタイムスタンプ列自動更新?
- 6. ActiveRecord繰り返しカウントのテーブル定義タイプ
- 7. を選択し、最も繰り返される値とMySQL
- 8. mysqlのテーブルに複数の列名を変更する
- 9. mysqlの列挙型を変更する
- 10. sre_constants.error:何も繰り返さない
- 11. MySQLの列名を変更
- 12. AppleScriptで繰り返し名前を変更
- 13. 変更を繰り返しフィールド
- 14. 配列を繰り返すのではなく、ループを定義した回数だけ* ngFor?
- 15. 繰り返しのない複数の系列chartTypeを変更しますか?
- 16. MySQLテーブルの特定のレコードを更新してください
- 17. 型名に型名が定義されていません
- 18. 配列を繰り返す
- 19. 問合せ結果で列名が繰り返される
- 20. リスト参照を繰り返している間に値を変更しないでください
- 21. 繰り返しのないMySQLクエリ
- 22. MySQL - Selectステートメントが何も返さない場合の戻り値の変更
- 23. MySQLのすべての列を変更するテーブル
- 24. ;何度も繰り返される特定のグループをキャプチャするため
- 25. 配列で繰り返し名前をチェックする方法は?
- 26. 名前が変数で定義されているテーブルを検索する
- 27. ループが突然繰り返されなくなりますか?
- 28. PHP/MYSQL +繰り返し中
- 29. コントロールビューを繰り返し変更するとアプリケーションがクラッシュする
- 30. .NETの列挙型(名前と値)を定義するXSD
はそれが可能だとは思わない。 –
@Tomasは、私たちは列の名前を変更すべき状況のどの種類に聞いても、そのタイプの定義を繰り返すことなく?ありがとう:) – tyger
@tyger、中あなただけの列の名前を変更したい場合 – TMS