Oracleのマルチテーブルは削除加入しますか? - ターン

メソッドのOracleとMySQLのマルチテーブルは、大量のデータを削除し、その多くが実証されていなかった、あなたは間違った情報に惑わされている可能性があり、次の2つの表は、私は、この通知に与えることを、例えば、データをMySQLへの削除しました以下に示すように少しは、私は、MySQLで2つのテーブルを作成し、ユーザテーブルと状態テーブルです。

ユーザー表のユーザー:

QQのスクリーンショット20171116215656.jpg

示すように、国立表の国、:

QQのスクリーンショット20171116215705.jpg

あなたはこれらの二つのMySQLのテーブルを見ると、あなたがそのような発言をしている削除するには、マルチテーブルデータを考える必要があり、実際には、これは間違っています!次のように。

削除 からユーザーのuを、C国どこ u.id = c.userId  u.id =  20

 

MySQLはマルチテーブル次のように与えられ、上記のSQL構文構文エラーによって報告された文を削除します。

[SQL]

ユーザーからのuを削除し、C国どこu.id = c.userIdとu.id = 20

[のErr] 1064 - あなたはあなたのSQL構文でエラーが発生しています。近くに使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してください「U、C国u.id = c.userIdとu.id = 20」行1で

マルチMySQLは接続、次の2つのステートメント、必要に応じを除去するために適切な方法で提供されたデータテーブルを削除します。

// 语句一
 削除 C、uとから、ユーザuはINNER  JOINの国cを u.id = c.userId  u.id =  20 

// 语句二
 削除、uとC からユーザuはINNER  JOINの国をC どこ u.id = C .userId  u.id =  10

 

あなたが思うだろう今回は、Oracleは、これらの二つの文の上に複数のテーブルを使用することができ、データを削除しますか?答えは:いいえ!それはエラーとして報告されます。

"ORA-00933:SQLコマンドが正常に使用できません"

説明オラクルは、上記の二つの文は、複数のテーブルのデータを削除されていない使用、およびマルチテーブルOracleはそれを書くためにどのようにデータを削除しますか?次のようにコマンドがあります。

// Oracleは唯一の独立した実行できる
 削除 からユーザーWHERE users.id =  20 
削除 からWHERE country.userId =  20

 

オラクルでは、Oracleデータベースに関連するセキュリティ・メカニズムを続けることができた、関連する複数のテーブルを削除することはできません、あなただけ実行するために2つのSQL文の中に上記の文を置くことができ、マルチテーブルでは、Oracleを削除達成することができます。

転送:http://www.tpyyes.com/a/mysql_oracle/2017/1116/383.html

おすすめ

転載: www.cnblogs.com/Mr-Simple001/p/10966562.html