PostgreSQLに作成したテーブルにデータ作成時、主キーに空文字を登録できたのですが、これってありですか?
私の上司、先輩だとしてアドバイスお願いしますm(__)m
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答6件
0
私の上司、先輩だとしてアドバイスお願いします
・どういう場合に空文字が発生するの?
・空文字とそうでない場合は識別したりするの?
・そのデータはCSVなどの入出力はあるの?
先輩や上司だったら、アドバイスより前に背景を質問しないと駄目な質問に突っ込みます。
コメントに対して追記
取り込もうとするcsvデータで、その項目が未指定の場合、空文字(ブランク)となります
・CSVで行う処理は追加のみですか?変更もありますか?
・変更がある場合、空白の扱いはどうなりますか?
投稿2018/11/12 06:58
編集2018/11/12 07:25総合スコア25300
0
NULLじゃなければ問題ないですが、デメリットしかないでしょうね
投稿2018/11/12 06:48
総合スコア116443
0
RDBMS によっては主キーに全く null を許さないという制約を持つ場合があります。
少なくとも単一カラムからなる主キーではどの RDB でも null は許容されませんが、複数カラムからなる場合に、どこまでnullを許容するかが異なってきます。
※MS SQL Server は主キーを構成するカラムすべてが NOT NULL 制約を持つことを要求しますが、MySQL や PostgreSQL はそこまで要求しません。
また null があるとインデックスが効きにくくなり、主キーのもつ高速アクセス(一意であるが故に)と言う恩恵が失われてしまう場合もあります。
投稿2018/11/12 08:18
総合スコア13703
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
主キーは通常、「自動生成する番号」「GUIDなど桁数の決まった文字列」「コード値となる文字列」などを使うものですので、空文字列を入れられるテーブル構造自体が、あまり良くないとは思います。
投稿2018/11/12 06:31
総合スコア145930
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/12 07:07
2018/11/12 07:37
2018/11/12 07:59 編集
2018/11/12 08:00