布団が俺を呼んでいる

丘山大一のぶろぐ

Firebird のお勉強 外部参照キーを一時的に取り外したい

う~ん、知識不足が原因の大半なわけですが。
Firebird、システムテーブルの構造がイマイチピンとこない。

背景

外部参照キーがあると、外部から適当にデータを流し込むときに邪魔になることがあります。
「外部参照キーを考慮して流し込めよ」と言われれば、そりゃそうなのですが、まあ邪魔なんです。

ISQL.exeを利用して、外部参照キーを取得する

データベースにConncet して、
SHOW TABLE ほげほげTable;
でとれます。

SQLでは?

えらく難しい。
丸一日ほどなやんでいましたが、最終的にこちらを参考にしました。
まとめてとるならこんな感じになるらしい。

select 
 PK.RDB$RELATION_NAME as PKTABLE_NAME
,ISP.RDB$FIELD_NAME as PKCOLUMN_NAME
,FK.RDB$RELATION_NAME as FKTABLE_NAME
,ISF.RDB$FIELD_NAME as FKCOLUMN_NAME
,(ISP.RDB$FIELD_POSITION + 1) as KEY_SEQ
,PK.RDB$CONSTRAINT_NAME as PK_NAME
,FK.RDB$CONSTRAINT_NAME as FK_NAME
from
 RDB$RELATION_CONSTRAINTS PK
,RDB$RELATION_CONSTRAINTS FK
,RDB$REF_CONSTRAINTS RC
,RDB$INDEX_SEGMENTS ISP
,RDB$INDEX_SEGMENTS ISF
WHERE  
 FK.RDB$CONSTRAINT_NAME = RC.RDB$CONSTRAINT_NAME 
and PK.RDB$CONSTRAINT_NAME = RC.RDB$CONST_NAME_UQ 
and ISP.RDB$INDEX_NAME = PK.RDB$INDEX_NAME 
and ISF.RDB$INDEX_NAME = FK.RDB$INDEX_NAME 
and ISP.RDB$FIELD_POSITION = ISF.RDB$FIELD_POSITION 
order by 1, 5 

FKTABLE_NAME が外部参照しているテーブルで、参照先がPK_TABLE_NAME になります。
あとはSELECT結果をもとに、外部キーを外したりつけたり。

外す
ALTER TABLE  ほげほげテーブル DROP CONSTRAINT INTEG_ほげほげ;

つける
ALTER TABLE ほげほげテーブル
ADD FOREIGN KEY (col1, col2)
REFERENCES ほげほげ参照先テーブル(colA, colB)

外すだけなら

こちらも参考にできそうです。
SQLというよりスクリプトですかね。



Firebird 徹底入門

新品価格
¥4,104から
(2016/7/14 23:43時点)

コメントを書く

布団が俺を呼んでいる | Twitter に登録しようとした

布団が俺を呼んでいる

丘山大一のぶろぐ

Twitter に登録しようとした

ワタクシは全然SNSというものを使いません。
ですが、この度ちょっと事情がありまして、Tiwtter アカウントをとろうと思いました。


そして登録して10分ほどで






まだアカウント登録しかしてないのに違反扱いされたでござる。
冤罪でござる! 殿、冤罪でござるぞ!


調べてみると

結構引っかかる人が多いみたいですね。
推測するに、アカウントがスパム扱いされたかな?
丘山大一で活動している時はoutlookアドレスだからスパム扱いされやすいだよね……。
そして丘山大一としての電話番号なんぞないので、自力解決不可能w


しゃーないので

サポートに連絡してみます。


しかし



電話番号がないから電話番号で解除できないよ、と送ったのにも関わらず、電話番号でやれと。
まあこのメール自体、自動返信なんでしょうね。
自動化対策を自動でやるのは合理的といわざるをえない。

まあもう面倒なのでTwitterは諦めますw


コメントを書く

布団が俺を呼んでいる | Microsoft FEST 2015 に参加してきました その2

布団が俺を呼んでいる

丘山大一のぶろぐ

Microsoft FEST 2015 に参加してきました その2

土日は体調不良によりブログを更新できませんでしたが、最終日も参加してきました。

何よりの感想は「人多すぎ」ですw
通路は人で埋まるので、思うように移動できません。
さらに広い会場にするか、人数制限しないともう対応できないと思います。

さてセッションですが、「45 分でわかる! DevOps とマイクロソフトの技術」が面白かったです。
私はウォーターフォールモデルに絶望しているタチなので(もちろん、ウォーターフォールモデルにもいいところはありますが)、アジャイル、DevOpsといったことに挑戦してみたいなー、とは思っています。ただ理解が漠然としているのですよね。
でもこのセッションを聞いてなんとなく分かったような気がします。
配信されるかどうかは分かりませんが、もしされたらご視聴をおすすめします。

あとは「ビジネスで使うための、初めての Azure を使った動画配信詳細を見る」が面白かった。
自分は動画を取り扱ったことがないので、「何が」凄いのか理解しきれません。ですが、動画配信とは「動画の時間」「動画の質」「視聴者数」「ネットワーク」を意識するものなのだなあ、ということはわかりました。
そんなん当たり前だろ、と言われればそうなのでしょうが、でも全く知らない人間(私)にとっては、これらを一回で説明してくれたセッションは非常に有意義なものでした。
動画を一度配信してみて、苦労を体感してからまた聞き直してみたいなあ、と思います。
そうするとまた感想が変わってくるに違いない。

総合して、今回もためになるイベントでした。
今年はGoAzure, DeCode、Festと参加していますが、次の大型イベントも参加できるといいなあ。

コメントを書く

布団が俺を呼んでいる | ゲームパッド大暴走

布団が俺を呼んでいる

丘山大一のぶろぐ

ゲームパッド大暴走

幽霊の正体みたりゲームパッド(字余り)

カーソルの暴走

以前トゥートもしていたのですが、スタートメニューをはじめとする設定・電卓・メール等あらゆるUWP実装のアプリケーションのカーソルが暴走していました。
具体的にはカーソルキーの「↑」を押し続けた状態になっている感じでした。
スタートメニューでアプリを選択しようとしてスクロールしても勝手に上に戻される。
原因を探ろうと設定アプリを開いても勝手にスルクロールするので設定変更もままならない。
気分転換にマイクラ(Win10 Edition)やろうとしても視点移動し続けるので操作不能。
下記は再現がとれた分かりやすい例(電卓・ニュース)。


この現象は自作のメインPCとSurfacePro 3 で発生していました。
ただし、SurfacePro 3は突然直り、そのあとメインPCの方で発生、という流れでした。

でいきなり直ったりしたので、どうにも原因が分からなかったのですが、先日トリガーぽいのが判明しました。


問題発生条件

環境はWindows 10。おそらくハードウェア的な構成はさほど関係ない(複数のマシンで発生したので)。
現象が発生するのは、おそらくWindows Updateの次回以後起動時。
で、問題を起こしている直接の原因はゲームパッドJC-U4113SBKのようです。

このゲームパッドの「電源が切れている状態」で「コントローラUSB受信機がPCに刺さりっぱなし」で「Windows Update後の次回以後起動時」に問題が発生しました。


解決策

USBを引っこ抜けば解決しますが、再接続で再発します。
ではどうすればよいのかというと、ゲームパッドの電源を入れれば解決します(笑)
一度だけ電源を入れれば、切ってもOKです。
解決策自体は簡単……


解決に時間がかかった理由

解決までに時間がかかったのは、ゲームパッド購入後に試しで使って問題が「無かった」ため、調査対象から外してしまったことにあります。
また、買ったはいいもののゲームをしなかった(意味なーい)ため、電源を入れませんでした。でも使うつもりはあったのでUSBは差しっぱなしでした。
さらに最近は、Windows Updateは先にSurfaceに当てて試してからメインPCにも適用、という流れにしていました。そのため、
  • Surface で問題発生→
  • Windows Updateをメインマシンに当てるのを一時停止→
  • USB端子を使う必要が出てきたのでSurface からコントローラのUSBを引っこ抜く→
  • なぜか問題解決→
  • 小さいUSBを無くすのもイヤなのでメインPCにコントローラのUSB接続→
  • 問題なし→
  • Windows Update適用→
  • 問題発生→
  • Windows Updateに問題があるのか!?と勘違い→
  • ゲームをしないで調査に勤しむ→
  • 実はゲームをしないと解決しない問題
という流れです。気が付けば簡単な問題なんですが……
真面目にゲームをやっていれば自然と解決していたんです。ちくせう。ゲームせずに勉強なんかするからこうなるんだ。


推測

xinput方式のコントローラだとスタートメニューもコントローラで操作できるので(この時知ったんですが)、多分そのあたりが暴発しているんじゃないかなあと思っています。
高速スタートアップあたりも影響しているかもしれませんが、未検証です。



分かれば大した問題ではありませんでした。
なんにせよゲームパッド買ってゲームしない方に問題がある気がする。


エレコム ワイヤレス ゲームパッド 13ボタン Xinput 振動 連射 高耐久 ブラック JC-U4113SBK

新品価格
¥2,649から
(2019/2/14 20:44時点)

コメントを書く