RDB
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
nkmt
投稿数: 1668
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
無知なんで、くだらない質問かもしれませんが、
例えば商品コードが主キーになったデータが
いくつもあったとします。
商品マスタを1件削除すると、同じ商品コードを持ったデータは
連動して自動的に削除する、といった事がMS-SQLとMagicで
簡単に実現出来るのでしょうか?
いろんな機能があるのに、それを使いこなせないのなら
MS-SQLを使う価値も半減するのでしょうね。
MS-SQLを使う事によりエクセル等から容易にデータを
取り出せる事もわかりましたし、このまま使おうと
思っておりますが。
例えば商品コードが主キーになったデータが
いくつもあったとします。
商品マスタを1件削除すると、同じ商品コードを持ったデータは
連動して自動的に削除する、といった事がMS-SQLとMagicで
簡単に実現出来るのでしょうか?
いろんな機能があるのに、それを使いこなせないのなら
MS-SQLを使う価値も半減するのでしょうね。
MS-SQLを使う事によりエクセル等から容易にデータを
取り出せる事もわかりましたし、このまま使おうと
思っておりますが。
投票数:1
平均点:10.00
pu_mahalo
居住地: 大阪
投稿数: 775
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
こんにちは Puです
after トリガーを使えば できるかと思いますが
試してませんが(^^;
でわ〜でわ〜
after トリガーを使えば できるかと思いますが
試してませんが(^^;
でわ〜でわ〜
投票数:0
平均点:0.00
nobukoshi802
投稿数: 118
![一人前 一人前](../../uploads/rank3dbf8ea81e642.gif)
トリガーで実現出来ますが
MAGICのリポジトリ管理外なので
多様すると、どこで処理してたっけ?と悩みます。
(MAGICのクロスリファレンスでは当然検索出来ませんので)
基本は、MAGICで記述した方が管理がしやすいです。
トリガーは、レスポンスや必須条件になる場合は使用します。
また、トリガーの記述は、Transact-SQLの知識が必要になります。
MAGICのリポジトリ管理外なので
多様すると、どこで処理してたっけ?と悩みます。
(MAGICのクロスリファレンスでは当然検索出来ませんので)
基本は、MAGICで記述した方が管理がしやすいです。
トリガーは、レスポンスや必須条件になる場合は使用します。
また、トリガーの記述は、Transact-SQLの知識が必要になります。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
nkmt さん、こんにちは。
参考までですが、その逆のこと、つまり、ひとつでもその商品コードを
持ったレコードが存在すれば、商品マスターからそのコードのレコードは
削除できないようにする、といったことはできますよ。
データリポジトリにある、「外部キー」がそれです。これが SQL の醍醐味
のひとつでもありますね。
タンダコンピュータ/丹田 昌信
参考までですが、その逆のこと、つまり、ひとつでもその商品コードを
持ったレコードが存在すれば、商品マスターからそのコードのレコードは
削除できないようにする、といったことはできますよ。
データリポジトリにある、「外部キー」がそれです。これが SQL の醍醐味
のひとつでもありますね。
タンダコンピュータ/丹田 昌信
投票数:0
平均点:0.00
nkmt
投稿数: 1668
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
Tandaさん こんにちは。
商品マスタを削除しようとした時、各種伝票データを見に行き、
使われていたら削除不可!というロジックを書く予定をして
おりました。
もしかすると商品コードを書き換えたら、各種伝票に散らばっている
商品コードも書き換わったりするんですかね?
商品マスタを削除しようとした時、各種伝票データを見に行き、
使われていたら削除不可!というロジックを書く予定をして
おりました。
もしかすると商品コードを書き換えたら、各種伝票に散らばっている
商品コードも書き換わったりするんですかね?
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
nkmt さん、こんにちは。
> もしかすると商品コードを書き換えたら、各種伝票に散らばっている
> 商品コードも書き換わったりするんですかね?
試したわけではないので憶測ですが、外部キー制約が掛かっていれば、
商品コードの書き換えはエラーとなるはずです(あくまで推測です)。
タンダコンピュータ/丹田 昌信
> もしかすると商品コードを書き換えたら、各種伝票に散らばっている
> 商品コードも書き換わったりするんですかね?
試したわけではないので憶測ですが、外部キー制約が掛かっていれば、
商品コードの書き換えはエラーとなるはずです(あくまで推測です)。
タンダコンピュータ/丹田 昌信
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
nkmt さん、こんにちは。
> 商品マスタを削除しようとした時、各種伝票データを見に行き、
> 使われていたら削除不可!というロジックを書く予定をして
> おりました。
まさに、それを実現するのが「SQL の外部キー制約」の機能です。
プログラムの記述は不要です。
タンダコンピュータ/丹田 昌信
> 商品マスタを削除しようとした時、各種伝票データを見に行き、
> 使われていたら削除不可!というロジックを書く予定をして
> おりました。
まさに、それを実現するのが「SQL の外部キー制約」の機能です。
プログラムの記述は不要です。
タンダコンピュータ/丹田 昌信
投票数:0
平均点:0.00
nkmt
投稿数: 1668
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
商品マスタに、商品コードだけで構成されたインデックスがあり、
それの「プライマリーキー」というチェックボックスにチェックを付けました。
見積明細データに、外部キーを作ってみました。
見積明細データの商品コードと、
商品マスタの商品コードを結び付けた格好になったと思います。
見積明細データで使われている
商品マスタの商品コードをAPGで書き換えようとすると、
「成約違反」というエラーが出ました。
矛盾が起きない為の仕組みなんでしょうね。
※1対Nの1側を書き換えるとN側も一斉書き換えみたいな事
って可能なんですかね?
次に、見積明細データをAPGで開いてみました。
見積明細の削除は可能でした。
見積明細の中の商品コードの書き換えは、
商品マスタに存在している他の商品コードであれば変更出来るようです。
(商品コード未入力はNGでした。
商品マスタに、商品コード=未入力を作ったら
見積明細の商品コードも未入力に出来ました。)
たまに商品コード、得意先コードなどに意味を持たせる客がいます。
よってそれらのコードを書き換え可能にという要求があります。
(本当はやりたくないし痛い目にあった事もあります。)
この場合、1対NのN側を全件書き換えて該当コード未使用
状態にしておかないと駄目ですね。
伝票に使われているコードの不正削除、
コード矛盾変更を防げるだけでも外部キーは
使う価値がありそうだと思いました。
それの「プライマリーキー」というチェックボックスにチェックを付けました。
見積明細データに、外部キーを作ってみました。
見積明細データの商品コードと、
商品マスタの商品コードを結び付けた格好になったと思います。
見積明細データで使われている
商品マスタの商品コードをAPGで書き換えようとすると、
「成約違反」というエラーが出ました。
矛盾が起きない為の仕組みなんでしょうね。
※1対Nの1側を書き換えるとN側も一斉書き換えみたいな事
って可能なんですかね?
次に、見積明細データをAPGで開いてみました。
見積明細の削除は可能でした。
見積明細の中の商品コードの書き換えは、
商品マスタに存在している他の商品コードであれば変更出来るようです。
(商品コード未入力はNGでした。
商品マスタに、商品コード=未入力を作ったら
見積明細の商品コードも未入力に出来ました。)
たまに商品コード、得意先コードなどに意味を持たせる客がいます。
よってそれらのコードを書き換え可能にという要求があります。
(本当はやりたくないし痛い目にあった事もあります。)
この場合、1対NのN側を全件書き換えて該当コード未使用
状態にしておかないと駄目ですね。
伝票に使われているコードの不正削除、
コード矛盾変更を防げるだけでも外部キーは
使う価値がありそうだと思いました。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
nkmt さん、こんにちは。
レスを書こうと思っていたのですが、投稿後に編集されたみたいで
ツジツマが合わなくなってしまって、投稿を止めました。
外部キーは便利ですよ。これだけでも、SQL を使う価値があると思います。
他にも、SQL にしか無い「結合リンク」とか「外部リンク」とかもありますし。
タンダコンピュータ/丹田 昌信
レスを書こうと思っていたのですが、投稿後に編集されたみたいで
ツジツマが合わなくなってしまって、投稿を止めました。
外部キーは便利ですよ。これだけでも、SQL を使う価値があると思います。
他にも、SQL にしか無い「結合リンク」とか「外部リンク」とかもありますし。
タンダコンピュータ/丹田 昌信
投票数:0
平均点:0.00
nkmt
投稿数: 1668
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
お世話になりました。
出来る出来ないで間違いがあったので投稿を編集しました。
元々投稿の趣旨がMSSQLを使いこなせないならPervasiveに
戻った方がいいのかなと思っての事でした。
丹田さんや他の方もMSSQLをお勧めしていたし
このまま進みたいと思います。
出来る出来ないで間違いがあったので投稿を編集しました。
元々投稿の趣旨がMSSQLを使いこなせないならPervasiveに
戻った方がいいのかなと思っての事でした。
丹田さんや他の方もMSSQLをお勧めしていたし
このまま進みたいと思います。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
nkmt さん、こんにちは。
そういえば、外部キーを設定すると、APG をしただけで結合リンクが
自動生成されます。これも楽ちんですね。
タンダコンピュータ/丹田 昌信
そういえば、外部キーを設定すると、APG をしただけで結合リンクが
自動生成されます。これも楽ちんですね。
タンダコンピュータ/丹田 昌信
投票数:0
平均点:0.00
nkmt
投稿数: 1668
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
> APG をしただけで結合リンクが自動生成されます。
> これも楽ちんですね。
見積明細データをAPGしたら、商品マスタの内容も
APGの右端にくっついてきました。
プログラムリポジトリで、見積明細データをAPGしたら
メインソースに、見積明細データが作られるのは当然として
結合リンク、商品マスタ
というのが出てきました。面白いですね。
でも結合リンク、外部リンク・・・まだよく意味を理解していません。^^;
結合リンクは、商品マスタにちゃんと商品コードが存在する
メインソースだけを表示、
外部リンクは商品マスタに有る無いに関わらずメインソースを表示
という事のようですね。
※ 「くっ島」さんにもその説明がありました。
ER図などを出せるツールがあるのか知りませんが、
外部キー設定を見たりするのでしょうね。
> これも楽ちんですね。
見積明細データをAPGしたら、商品マスタの内容も
APGの右端にくっついてきました。
プログラムリポジトリで、見積明細データをAPGしたら
メインソースに、見積明細データが作られるのは当然として
結合リンク、商品マスタ
というのが出てきました。面白いですね。
でも結合リンク、外部リンク・・・まだよく意味を理解していません。^^;
結合リンクは、商品マスタにちゃんと商品コードが存在する
メインソースだけを表示、
外部リンクは商品マスタに有る無いに関わらずメインソースを表示
という事のようですね。
※ 「くっ島」さんにもその説明がありました。
ER図などを出せるツールがあるのか知りませんが、
外部キー設定を見たりするのでしょうね。
投票数:0
平均点:0.00