テーブル作成時のNULLの列について

このQ&Aのポイント
  • テーブル作成時にNULLの列に何も表示させない方法を知りたいです。
  • テーブルのサンプルにはNULLの列には何も表示されていませんが、自分で作成するとYESかNOが表示されてしまいます。
  • Verの違いなど、何が原因でテーブル作成時のNULLの列の表示が異なるのか分かりません。
回答を見る
  • ベストアンサー

テーブル作成時のNULLの列について。

現在練習でDBを作成中なのですが、 +------------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------+------+-----+---------+-------+ | shiawase | int(7) | *** | | 0 | | | geitsuchan | int(5) | *** | | NULL | | | comicbeam | int(11) | *** | | 0 | | +------------+---------+------+-----+---------+-------+ 上記の図の***の位置(NULLの列)に何も表示させないと言う事は出来るのでしょうか?知り合いに試しに作ってみれば?といわれて渡されたテーブルのサンプルの表にNULLの列には何も表示されていませんでした。 ですが自分でテーブルを作成するとかならず***の部分にはYESかNOが入ってしまいます。 Verの違いとかなんでしょうか?

  • MySQL
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

MySQLは、バージョンにしょり、仕様変更されることもあります。 (1)その知り合いの人に、使用しているバージョンを確認 (2)DDLをもらうか、「show create table 表名」でDDLを表示したものをもらう (3)質問者さんの環境で確認する

tamanele
質問者

お礼

試してみます。ありがとうございました!

関連するQ&A

  • mySQLでのテーブル作成についての質問

    テーブル内の列で Field || Type || Null || Key || Default || Extra ID | int(6) | YES | UNI | NULL | auto_increment と言うテーブルを作成するにはどう記述したら良いのでしょうか? auto_incrementを指定した場合はフィールドにNULLを許可する事は出来ないのでしょうか?

  • SHOW FIELDSについて

    1.以下テーブルを作成しました  CREATE TABLE n_tables (  i integer NOT NULL); 2.作成したテーブルの構造について  SHOW FIELDS FROM number_tables;    <結果>   Field|Type  |Null |Key|Default|Extra  =============================  | i   | int(11) | NO |    | NULL|      | 質問:  1で、NOTNULLで i列を作成したのですが、Show fields を確認したときに  なぜ、DEFAULT列は NULLになっているのでしょうか。  NULL列がYES(NULL格納可能)で、DEFAULT値がNULLなら、DEFAULT列が  NULLなら納得できるのですが。  そういう仕様なのでしょうか。  MySQL Verは、5.1.33です。

    • ベストアンサー
    • MySQL
  • 先ほども質問していたのですがテーブル作成についてです。

    もう少し細かく書こうと思い再度質問させて頂きます。 テーブル作成時のkeyの部分に(PRIやUNIが入る部分)MULを入れるにはどうしたら良いのか?と言う質問です。 +------------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------+------+-----+---------+-------+ | shiawase | int(7) | | *** | 0 | | | geitsuchan | int(5) | YES | *** | NULL | | | comicbeam | int(11) | | *** | 0 | | +------------+---------+------+-----+---------+-------+ 上記の図の***の部分にMULと表示させたいのですがどうすれば言いのでしょうか?PRIやUNIは設定する事が出来ました。

    • ベストアンサー
    • MySQL
  • NULLについて

    NULLについて伺います。 現在、strutsで入力画面にて入力した内容がデータベース(MYSQL)に反映されるWEBアプリケーションを作っているのですが、Column 'title' cannot be nullとコンソールでエラーが出ており、「not nullでテーブルを作り直せばいいのかな」と思い、一旦テーブルを削除してからもう一度作り直したのですが、エラーが変わりません。何かしらご教授頂ければ幸いです。よろしくお願いいたします。下記にテーブル構造と、その下にエラーを貼り付けておきます。(文字数の関係上、エラー全文は貼り付けられませんでした) mysql> desc input; +--------------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+---------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | title | text | NO | | NULL | | | movie_url | text | NO | | NULL | | | material_url | text | NO | | NULL | | | explanation | text | NO | | NULL | | +--------------+---------+------+-----+---------+----------------+ com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'title' cannot be null

    • ベストアンサー
    • MySQL
  • Accessのテーブル作成クエリについて

    教えてください。 Accessで、Yes/No型のフィールドを含むテーブルをテーブル作成クエリで新しくテーブルを作成すると、そのYes/No型のフィールドの値がチェックボックスにならずにチェックされているところが-1に、ないところは0になってしまうのですが、チェックボックスのままで作成して欲しいのです。何か方法があるのでしょうか。

  • インポートした時に[ _seq ]というテーブルが自動作成される

    お世話になっております。 MySQLのPHPMyAdminにてSQLをインポートすると、 まれに[ _seq ]というテーブルが自動作成される事があります。 構成として、 sequence int(11) Not Null auto_increment の1フィールドのみのテーブルです。 何故、このようなテーブルが発生するのでしょうか? また、インポートデータに問題はないのでしょうか? (インポート時にエラーは表示されません) どうぞ宜しくお願い致します。

  • postgres table作成時にindex付与

    MySQLでは以下のようにテーブル作成時にインデックス付与ができます。 CREATE TABLE test ( a int(11) NOT NULL DEFAULT '0', b int(11) DEFAULT NULL, PRIMARY KEY (a), KEY test_idx (b), -- ★インデックス その1 KEY test_idx2 (a) -- ★インデックス その2 ); ポスグレではできませんか?

  • PHPでMySQLを利用した予約カレンダー

    PHPでMySQLを利用した予約カレンダーを作成しなければならない課題なのですが、初心者同然の知識ではなかなか難しく、また、思うようなサンプルも見つからず、困っています…。 希望としては、カレンダー表示(うるう年計算や祝日情報を含む)で、データベースに予定が入っていなければ日付にリンク付けをし、枠内に○印を記載、そりてリンクからは予約項目入力ページに移動させるようにしたいと思っています。また、データベースに予定が入っていれば日付のリンク付けはなしで枠内に×印を表示して予約が出来ないようにしたいと考えています。 下記が予約状況を入れたMySQLテーブルです。 mysql> desc reserve; +--------------+-----------+----+---+-----------------+---------------------------+ |Field |Type |Null|Key|Default |Extra | +--------------+-----------+----+---+-----------------+---------------------------+ |会員ID |varchar(10)|NO |MUL|NULL | | |部屋NO |int(3) |NO |MUL|NULL | | |人数:大人 |int(3) |NO | |NULL | | |人数:子ども |int(3) |NO | |NULL | | |チェックイン |date |NO | |NULL | | |チェックアウト|date |NO | |NULL | | |宿泊プランNO |int(10) |NO |MUL|NULL | | |予約登録日 |timestamp |NO | |CURRENT_TIMESTAMP|on update CURRENT_TIMESTAMP| +--------------+-----------+----+---+-----------------+---------------------------+ 出来ればサンプルコード、もしくは希望のサンプルが乗ったURLなどをお教え頂きたく思います。 また、予約画面ではチェックアウト日選択(チェックイン日から1週間以内)や、人数を入力していただくテキストフィールドと宿泊プランの選択プルダウンをつけるつもりでいます。 すみませんがどなたかこの初心者に救いのお手をお貸しくださいませ。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 複数テーブルSELECT*、NULLのカラムに別の値が代入されて出力される

    複数テーブルSELECT*、NULLのカラムに別の値が代入されて出力される こんにちは。 MySQLの経験が未ださほどないので、単純なミスかも知れませんが 少しアドバイスをお願いします。 複数テーブルに対してSELECT *を行うと、 本来NULLになるべきカラムに別の値が入った状態で出力されます。 *同一データベース内です [Table_A]    tel      name    links        regtime 000000000  サンプルA  okwave.jpA   1246247993 000000001  サンプルB  okwave.jpB   1246248003 000000002  サンプルC  okwave.jpC   1246249258 [Table_B]   subject      name    body            password サンプル書き込み1  サンプルD  サンプル1。ここが本文... 22521343 サンプル書き込み2  サンプルE  サンプル2。ここが本文... 4654387368 サンプル書き込み3  サンプルF  サンプル3。ここが本文... 13213843843 [Database] tel デフォルト: NULL, 型: TINYTEXT name デフォルト: NULL, 型: TEXT links デフォルト: NULL, 型: TEXT regtime デフォルト: NULL, 型: INT subject デフォルト: NULL, 型: TEXT body デフォルト: NULL, 型: TEXT password デフォルト: NULL, 型: TINYTEXT このとき、SELECT * FROM `Database`.`Table_A`, `Database`.`Table_B` LIMIT 0, 30; を実行して得られた結果が、    tel      name    links        regtime      subject       name       body        password 000000000  サンプルA  okwave.jpA   1246247993     NULL        NULL      NULL       22521343 000000001  サンプルB  okwave.jpB   1246248003     NULL        NULL      NULL       22521343 000000002  サンプルC  okwave.jpC   1246249258     NULL        NULL      NULL       22521343 000000000   NULL    NULL      1246247993  サンプル書き込み1  サンプルD  サンプル1。ここが本文... 22521343 000000000   NULL    NULL      1246247993  サンプル書き込み2  サンプルE  サンプル2。ここが本文... 4654387368 000000000   NULL    NULL      1246247993  サンプル書き込み3  サンプルF  サンプル3。ここが本文... 13213843843 このようになってしまいます。 そのテーブルが持たないカラムのうち数字のみが記録されているカラムだけ 勝手に別のテーブルに記録されている値が入った状態で出てきてしまうのです。 IPアドレスを記録してあるカラムの値にはドットが入っているためか、 上には該当せず、NULLはちゃんとNULLとして返ってきます。 他にも、数字以外の文字列を含むカラムのデータはすべて正常に動いています。 いろいろ調べている最中ですが、 phpMyAdminで上記のSQLクエリを実行しても同じ結果が得られたため、 テーブルの使い方が悪いのかクエリに何か足りないのかだと思います。 しかしまだ原因が特定できないので、ご助力いただきたいのです。 よろしくお願いします。 環境は、 MySQL: 5.1.34 文字セット: UTF-8 unicode 照合順序セット: utf8_general_ci PHP: 5.2.9

    • ベストアンサー
    • MySQL
  • NOTNULL制約について

    MYSQL ver4.0.20a 下記のようにNOTNULL制約を付けてテーブルを作成するのですが、 デフォルト値が勝手に設定されてしまいます。 CREATE TABLE TEST_01 ( NO int(8) NOT NULL auto_increment, STATUS int(1) NOT NULL, TOUROKUBI date NOT NULL, MEMO varchar(200) NOT NULL, PRIMARY KEY (NO) INT型だと 0 varchar型だと '' date型だと 0000-00-00 インサートの時に値がNULLの場合、SQLエラーを返してほしいのですが、 デフォルト値が設定されている為、登録されてしまいます。 本当はNOTNULL制約で、DBにチェックを任せたいのですが・・・ どなたかご存知の方、教えてください。 お願いします。

    • ベストアンサー
    • MySQL