ホーム › フォーラム › A5:SQL Mk-2掲示板 › 【要望】MySQL ER図リバース生成時のデフォルト値反映
-
投稿者投稿
-
ddddchi
ゲストいつもsql mk2に大変助けられております。ありがとうございます。
MySQLにてER図リバース生成するとDEFAULT値が反映されないのはおそらく仕様かと思いますが、
timestampカラムのDEFAULT NULL指定が反映されないことに困っております。MySQLのtimestampはテーブル内でtimestampカラムが2個目だった場合にDEFAULT 0にする仕様があるのでそれをNULLとしたいのですが、実テーブル側に指定したDEFAULT値がER図側にはリバース生成で反映されず…
https://dev.mysql.com/doc/refman/5.6/ja/timestamp-initialization.html
お手すきの際にご対応/ご検討お願い致します。
松原正和
キーマスターddddchiさんこんにちは。
MySQL 8で検証したのですが、上述の2個目のtimestampカラムが 0日時で初期化されるという挙動は確認されませんでした。バージョン間の挙動の違いでしょうか…。
なお、ER図のリバース生成生成時はデフォルト値の指定があれば、入ってくるはずなのですが、うまく動作していないのでしょうか?。テーブルエディタの「カラム」タブは正しくデフォルト値が表示されますでしょうか?。A5:SQL Mk-2では「show columns from xxxx.yyyy」形式でカラムの定義を取得します。
ddddchi
ゲスト返信大変遅くなり申し訳ございません
MySQL 5.6.13ですが、
実テーブル側でshow columns from クエリでDEFAULT NULLが指定されている場合でも、
sqlmk2のテーブルエディタのカラムタブのデフォルトに NULL 指定が表示されていないようです おそらくER図に反映されないのはこの段階で表示されていないから、のような気がしますMySQL 8だと暗黙のデフォルト値の取り扱いが変わったのかもしれませんね。
松原正和
キーマスターddddchi さんこんにちは。
確認したところ、デフォルト値にnullを指定したtimestamp型は、show columns from…で表示したところ、デフォルト値はnullでした。ただ、デフォルト値を指定しないtimestamp型はcurrenttimestampなり、0000-00-00 00:00:00だったりするのですが、「A5:SQL Mk-2はデフォルト値は指定しなければ nullが入る」を前提としているため、ここで齟齬が発生したようです。
MySQLのtimestampではデフォルト値がnullで取得された場合、ER図のデフォルト値にも nullを設定するように修正しますので少々お待ちください。 -
投稿者投稿