ここは私の状況です。 まず第一に、私はリレーショナルデータベースに取り組んでいません。データを操作する簡単な方法として単にアクセスを使用しています。 現時点では、テーブルがたくさんあります。
1つのメインテーブルMAINと約10個の他のテーブルを呼び出すことができます.X1、X2、X3などを呼び出すことができます。 X1テーブルにはX1プロパティを持つアイテムが含まれています。 X2テーブルには、X2プロパティを持つ項目などがあります。ACCESS/SQL:同時にINSERT/UPDATEを挿入する方法は?
すべてのXxテーブルには同じフィールドがあります。 MAINテーブルにも同じフィールドがあり、さらにブール型のフィールドX1、X2などがあります。私が何をしたいか
:
私はXXテーブルからデータをメインテーブルを供給します。
なので、複数のプロパティを持つアイテムがある可能性があります。そのため、たとえばX1、X2、X5に表示されます。
だから私は、最初にこれを実行している時に試してみました:
UPDATE MAIN
SET itemnumber = X1.itemnumber, x1 = "true";
が、それは何かを与えるものではありません。 MAINテーブルにはまだレコードが存在しないので、これは論理的であると思います。
テーブルX1のレコードがMAINにまだ存在しない場合は、追加してX1フィールドをtrueに設定します。
X1のレコードがすでにMAINに存在する場合は、それを更新してX1フィールドをtrueに設定します。
(その後、私は私が持っているすべてのXテーブル上で実行するためにそれを更新します。)
私はINSERT INTOを検討しているが、私はすでに存在するデータを上書きするか、エラーを生成したくない(私は本当にこのすべてについて多くを知りません> _>)
アドバイスを提供できる方は、事前にお礼を申し上げます。
:私は、私が最初にこれを試してみました(彼らは同じ構造を持っている)私が最初にメインテーブルにXXテーブルからすべてのデータを挿入しようと思った
編集1
私はその後、私は、Feを実行し、私はXテーブルからすべてのデータを追加したら考え出し/
:
INSERT INTO MAIN.itemnumber
(select X1.itemnumber from X1
UNION ALL
select X2.itemnumber from X2)
は、それが動作するかどうかを確認するだけで一つのフィールドでそれを試してみましたが、そうでありませんw XxテーブルごとにWHERE EXISTSでUPDATEを行い、それに応じてXxプロパティをtrueに設定すると完了です。
しかし、私は一つでも....
私はSQLでIFを使うことができませんでした。これから何かをしようとします! –
"IF"はAccess ... "無効なSQL命令"で動作しません。あるいは、私はそれを正しくやっていないかもしれません。 –
質問として明確に記入された(質問の文章で特定されている)質問に対する非Access SQLをAccessとして投稿しないでください。 -1 –