タグ付けされた質問 「ddl」

データ定義言語; データベース構造を定義するが、その内容は定義しない。

2
大きなテーブルに新しい列を追加する最良の方法は?
Postgresには7,801,611行の2.2 GBのテーブルがあります。uuid / guid列を追加していますが、その列にデータを入力する最良の方法は何ですか(NOT NULL制約を追加したいので)。 Postgresを正しく理解している場合、更新は技術的には削除と挿入であるため、これは基本的に2.2 gbテーブル全体を再構築しています。また、スレーブが実行されているため、遅れることを望みません。 時間をかけてゆっくりと入力するスクリプトを書くよりも良い方法はありますか?



2
MySQLのトランザクションDDLワークフロー
私は少しはDDL文(ことを発見して驚いたalter table、create indexなど)が暗黙のMySQLで現在のトランザクションをコミットします。MS SQL Serverから来て、トランザクションでデータベースの変更をローカルで行う機能(その後ロールバックされた機能)は、ワークフローの重要な部分でした。継続的な統合では、何らかの理由で移行が中断した場合にロールバックが使用されたため、少なくともデータベースが半分移行された状態のままになりませんでした。 MySQLを移行と継続的インテグレーションで使用する場合、これら2つの問題をどのように解決しますか?

3
データベースで「少なくとも1つ」または「正確に1つ」を強制する制約
ユーザーがいて、各ユーザーが複数のメールアドレスを持つことができるとします CREATE TABLE emails ( user_id integer, email_address text, is_active boolean ) いくつかのサンプル行 user_id | email_address | is_active 1 | foo@bar.com | t 1 | baz@bar.com | f 1 | bar@foo.com | f 2 | ccc@ddd.com | t すべてのユーザーがアクティブなアドレスを1つだけ持つという制約を施行したい。Postgresでこれを行うにはどうすればよいですか?私はこれを行うことができました: CREATE UNIQUE INDEX "user_email" ON emails(user_id) WHERE is_active=true; これは、複数のアクティブなアドレスを持つユーザーを保護しますが、すべてのアドレスがfalseに設定されることは保護しません。 可能であれば、トリガーまたはpl / …

4
一部のDBMSで特定のDDLステートメントのロールバックが許可されないのはなぜですか?
最近、MySQL が「alter table」などのDDLのロールバックをサポートしていないことがわかりました。サポートしない技術的な理由はありますか?それは単に彼らにとって「面白くない」機能ですか? 編集:この比較が見つかりました。トランザクションDDLをサポートする多くのDBMSがあるようです。

1
SQL Server DDLでトランザクションを使用するには?
すべての挿入が単一のストアドプロシージャによって行われるログインテーブルがあります。 CREATE TABLE dbo.LogTable( LogRefnr int IDENTITY(1, 1) NOT NULL, LogQuery varchar(255) NOT NULL, LogTime datetime NOT NULL, logQueryDuration int NULL, LogSessionID int NULL, CONSTRAINT PK_Log PRIMARY KEY CLUSTERED (LogRefnr) ) go Create procedure DBO.LogInsert ( @Query varchar(255), @time datetime, @duration int, @SessinID int) as begin Insert into LogTable ( …

6
MySQLの2つのテーブルの構造を比較するクエリ
MySQLデータベースの1つのバックアッププロセスを自動化するために、2つのテーブルの構造(現在のバージョンと古いバージョン)を比較したいと思います。 2つのテーブルを比較できるクエリを考えられますか? 比較できる表の例を次に示します。 CREATE TABLE product_today ( pname VARCHAR(150), price int, PRIMARY KEY (pname) ); CREATE TABLE product_yesterday ( pname VARCHAR(150), price int, PRIMARY KEY (pname) ); CREATE TABLE product_2days_back ( pname VARCHAR(15), price int, PRIMARY KEY (pname) ); 最初の2つのテーブルの構造は同じです。最後のものは異なります。2つのテーブルの構造が異なるかどうかを知る必要があるだけです。私はそれらがどのように異なるかに興味がありません。

1
PostgreSQLでテーブルの照合を決定する方法は?
PostgreSQLのテーブルで使用されている照合のチェックをスクリプト化したいのですが、グーグル検索Postgresql detect collationがうまく機能しておらず、ドキュメントでは簡単に検索できません。 誰が私にこれを確認する方法を教えてもらえますか?

2
関数/ストアドプロシージャの作成時のスキーマチェックの無効化
SQL Server 2008 R2データベースへの変更を実行するプロセスを自動化しようとしています。配置したプロセスは、ストアドプロシージャと関数を削除して再作成し、スクリプトを実行してテーブル/列/データを変更します。残念ながら、スクリプトの1つでは、最初に機能の1つを配置する必要があります。しかし、最初にテーブル/列/データ変更スクリプトから追加される列に依存するため、最初にすべてのストアドプロシージャ/関数の変更を実行することはできません。 SQL Serverが関数/ SPの定義で使用される列を検証せずにストアドプロシージャと関数を実行できるかどうか疑問に思っていましたか?探してみましたが、これを有効にする条件またはコマンドが見つかりませんでした。

3
ALGORITHM = INPLACEよりもALGORITHM = COPYを好むのはなぜですか?
MySQL 5.6にはオンラインDDLが導入されたため、ALTER TABLEコマンドにはオプションでいずれALGORITHM=INPLACEかをALGORITHM=COPY指定または指定できます。オンラインDDLの概要では、デフォルトでINPLACEは可能な限り使用され、アルゴリズムが安価であることを(まったく述べずに)示していINPLACEますCOPY。 それではALGORITHM=COPY、ALTER TABLEステートメントで指定しなければならない理由は何ですか?


3
IDENTITY値をリセット
IDENTITY列のあるテーブルがあります。開発中に、時々行を削除し、再度追加します。しかし、IDENTITY値は常に増加し続け、それらを再度追加したときに1から始まっていませんでした。私のIDは68から> 92になり、これによりコードがクラッシュします。 IDENTITY値をリセットするにはどうすればよいですか?

2
DDLが切り捨てられるのはなぜですか?
インタビューの質問があります。これはインタビューの中で尋ねられました。私は質問に答えましたが、インタビュアーは私の答えにそれほど納得していませんでした。だから、誰でも私の理解で私を修正してください? Q. TruncateがDDLであり、DeleteがDMLである理由 両方ともほぼ同じジョブを実行します(行を削除します) 回答 Truncateを使用している場合、undo-table-spaceに保存せずに、データによって割り当てられたスペース全体の割り当てを解除しています。ただし、削除の場合、すべてのデータをUNDO表スペースに入れてから、すべてのデータを削除します。 上記のベストアンサーを知っている人がいたら、説明してください。
15 oracle  delete  ddl  truncate 

3
自動化された方法でOracle DDLをスクリプト化する
Oracle SQL DeveloperはTools -> Database Export...これを介してDDLをエクスポートできますが、これは非常に効果的ですが、手動による介入が必要です。 私は知っDBMS_METADATA.get_ddl()ていますが、エクスポートが完璧ではないことを発見しました。エクスポートされたDBMS_METADATADDLが、キーワードの途中での区切りなどの問題を修正することなく使用できないという問題に遭遇しました。ただし、DMBS_METADATA手動で修正することなく実行できるDDLのエクスポート方法を知っている人がいれば、それも素晴らしい解決策になります。 基本的に、手動でエクスポートしたものと同じ DDLをエクスポートする自動/スクリプト可能な方法を探しています。 どうやってやるの?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.