問題タブ [alter-table]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
20182 参照

sql-server-2005 - SQL Serverスクリプト:ALTERPROCEDURE-複数のALTERPROCEDUREを1つのスクリプトに実行します。各ALTERを次々に選択する必要はありません。

これは大きな問題ではないことは知っていますが、とにかく私をくすぐります。

  1. 新しいデータテーブル、制約、列を追加するためのいくつかのテーブルの変更、テーブルの変更を考慮に入れるためのプロシージャの変更などを行うSQLServer2005スクリプトがあります。
  2. スクリプトがALTERPROCEDUREステートメントに遭遇するまで、すべてが正常に実行されます。
  3. エラーメッセージは次のとおりです。

"メッセージ156、レベル15、状態1、プロシージャcpromo_Get_ConsultDetails_PromotionBan、59行目キーワード'PROCEDURE'の近くの構文が正しくありません。

これが私のスクリプトのサンプルです:

エラーは、ダブルクリックしたときに最初に検出された「end」キーワードを示しています。私がまったく得られないのは、ALTERステートメントを次々に選択するときです。それは問題なくスムーズに実行されます。選択せずに[F5]を押してすべて実行しようとすると、エラーが発生します。

ALTERステートメントを別のBEGIN...ENDに埋め込もうとしましたが、運が悪かったので、キーワードALTER...の近くに構文エラーがあると表示されます。

編集: beginステートメントの後に実行された変更にコメントしたためでしょうか?

助けや手がかりをありがとう。

0 投票する
7 に答える
216374 参照

mysql - MySQLのENUMタイプの列にメンバーを追加するにはどうすればよいですか?

MySQLリファレンスマニュアルには、これを行う方法の明確な例が記載されていません。

国を追加する必要がある国名のENUMタイプの列があります。これを実現するための正しいMySQL構文は何ですか?

これが私の試みです:

私が得るエラーは次のとおりです。ERROR 1265 (01000): Data truncated for column 'country' at row 1.

このcountry列は、上記のステートメントのENUMタイプの列です。

CREATE TABLEの出力を表示します:

carmakeの出力から異なる国を選択してください

0 投票する
4 に答える
1270 参照

sql - MySQL alter table で DROP+ADD より高速な RENAME

MySQL テーブルのメンテナンスを行っています。これは、冗長な列をいくつか削除し、新しい列を追加することを意味します。

ドロップする列のいくつかは、追加する列と同じタイプです。これを利用して、既存の列の一部を再利用した場合、手順は速くなりますか?

私の理論的根拠は、列名の変更は単純なテーブル メタデータの変更であるべきだということです。一方、列の削除と追加は、ファイルの最後にスペースを見つける (データを断片化する) か、すべての行を正しい列で再構築して同じになるようにすることを意味します。ディスクに置きます。

問題のエンジンは MyISAM であり、これがどのように処理されるかについて私は一概に言えませんので、以前に同じ状況にあったことがある方からの意見をお聞きしたいと思います!

0 投票する
3 に答える
269591 参照

mysql - MySQL の列定義を変更するには?

test という mySQL テーブルがあります。

locationExpect 列を次のように変更したい:

どうすれば素早くできますか?

0 投票する
2 に答える
5768 参照

tsql - 一時テーブルに列を追加しようとすると失敗する

今朝これを何度も調べましたが、問題が見つかりません。それはおそらく非常に単純であり、誰かがそれを指摘すると、私はばかのように感じるでしょう. この SQL は何に失敗しますか?

私が得ているエラーは次のとおりです。一時テーブル #WorkType にも「_RowID」という名前の列がありません

0 投票する
3 に答える
1811 参照

postgresql - 列を変更するPostgreSQL v7.4 ALTER TABLE

PostgreSQL v7.4 データベースのテーブルの CHAR 列の長さを変更する必要があります。このバージョンでは、ALTER TABLE ステートメントを使用して列の型やサイズを直接変更する機能はサポートされていませんでした。したがって、たとえば列を CHAR(10) から CHAR(20) に直接変更することはできません (ええ、「varchars を使用する」ことはわかっていますが、現在の状況ではオプションではありません)。これを最もよく達成するためのアドバイスやコツはありますか?私の最初の考え:

-- テーブルのデータを新しい「保存」テーブルに保存します。CREATE TABLE save_data AS SELECT * FROM table_to_change;

-- 変更する最初の列から列を下にドロップします。ALTER TABLE table_to_change DROP column_name1; -- 変更が必要な最初の列から始まる各列に対して ALTER TABLE table_to_change DROP column_name2; ...

-- CHAR 列の新しいサイズを使用して、列を追加し直します。 ALTER TABLE table_to_change ADD column_name1 CHAR(new_size); -- ALTER TABLE table_to_change ADD column_name2 の上にドロップされた各列に対して...

-- 「保存」テーブルからデータベースをコピーします UPDATE table_to_change SET column_name1=save_data.column_name1, -- column_name2=save_date.column_name2 の上で削除/再追加された各列に対して、 ... FROM save_data WHERE table_to_change.primary_key=save_data.primay_key;

うん!うまくいけば、より良い方法がありますか?任意の提案をいただければ幸いです。ありがとう!

0 投票する
4 に答える
1088 参照

mysql - Railsのalter_tableメソッドとは何ですか?

開発中のデータベースにsqlite3を使用してきましたが、アプリが複雑になり、操作が少し遅くなりました。

MySQLに切り替えて実行rake db:create ; rake db:migrateしたところ、移行の1つが失敗し、次のエラーメッセージが表示されました。

私は簡単なグーグルを持っていて、何も見つかりませんでした。次に、APIを確認しましたが、文書化されたメソッドはありませんalter_table。ただし、sqlite3では機能します。

これが私の移行です:

これはsqlite3で期待どおりに機能します。

私は夢中になりますか?私はこの方法を発明したばかりで、サポートされているデータベースのサブセットでのみ機能する文書化されていない機能でしたか?

誰かがこれについていくつかの洞察を持っていますか?

0 投票する
31 に答える
562678 参照

ruby-on-rails - Ruby on Rails 移行でデータベース列の名前を変更するにはどうすればよいですか?

hased_passwordではなく列の名前を間違えましたhashed_password

移行を使用してこの列の名前を変更し、データベース スキーマを更新するにはどうすればよいですか?

0 投票する
1 に答える
9018 参照

mysql - Mysql 5.1.42 alter table auto_increment = 0は機能しませんが、truncateは機能します

自動受け入れテストでは、挿入をid=1で開始する必要があります。これは、1台のPC(XP 32ビット、mysql 5.1.something)で(テーブルからすべての行を削除した後)「altertable tableName auto_increment=0」で実現しました。

新しいPC(Windows 7 64ビット、mysql 5.1.42)をセットアップしていますが、このコマンドは効果がないようです。information_schema.tablesテーブルで、auto_increment値が0に戻されていないことがわかります---上昇し続けています。そのテーブルの値を直接変更しようとすると、「root」@「localhost」へのアクセスが拒否されたと言われます。これはおそらく私の問題にヒントを与えますか?

他のstackoverflowの人々は、「tableNameからの切り捨て」が良い代替手段であると提案しました。これが機能することを報告できてうれしいです。しかし、「altertable」コマンドがauto_incrementをリセットしない理由を誰かが知っていますか?

ありがとう!

0 投票する
1 に答える
1233 参照

mysql - 価格が正しく注文されるように、現在varcharである価格フィールドを小数に変換するにはどうすればよいですか?

私はMYSQLを使用しています。

価格に誤って使用したvarcharフィールドがあります。これで、このテーブルの順序が正しく機能せず、リストの一番下に1000を超えるものが配置されます。

既存のPOPULATEDデータベースのこの価格フィールドをvarcharからdecimalに変換する必要があると思いますか?

どんな助けでもいただければ幸いです。