2017-03-13 2 views
0

私は自分のテーブルに値を入力すると、phpmyadminを使ってデータベースを作成しますが、なぜこうなった?あなたの主キーがtext私のテーブルに値を入力するとプライマリキーがnullとして許可されます

主キーは列またはテーブル内の各行を一意に識別する列のセットである

CREATE TABLE `subscriber` ( 
    `first_name` varchar(100) NOT NULL, 
    `last_name` varchar(100) NOT NULL, 
    `phone_number` varchar(8) NOT NULL, 
    `node_name` varchar(50) NOT NULL, 
    `node_number` int(5) NOT NULL, 
    `shelf` int(5) NOT NULL, 
    `card` int(5) NOT NULL, 
    `port` int(5) NOT NULL, 
    `ONT` int(5) NOT NULL, 
    `registration_id` int(5) NOT NULL, 
    `comment` text NOT NULL, 
    PRIMARY KEY (`phone_number`)) 
ENGINE=InnoDB DEFAULT CHARSET=latin1 

答えて

0

:下のphpmyadminののCREATE TABLE文を参照してくださいしてください。

主キーには一意の値が含まれている必要があります。

主キーが複数の列で構成される場合、これらの列の値の組み合わせは一意でなければなりません。

主キー列にNULL値を含めることはできません。つまり、NOT NULL属性を持つ主キー列を宣言する必要があります。

もしそうしないと、MySQLは主キー列を暗黙的にNOT NULLとして強制します。 テーブルには主キーが1つしかありません。

MySQLは整数で速く動作するので、主キー列のデータ型は整数などである必要があり、INT、BIGINT.Youが小さい整数型を選択することができます。TINYINT、SMALLINT、など

+0

を私はその情報を知っています私はデータベース設計を勉強しました。私の問題は、レコードが保存されている電話番号を入力せずに、phpmyadminまたはWebフォームの情報を記入することです。電話番号はプライマリキーなので、レコードを保存しないでください。私はなぜこれが起こっているのか知りたいですか? – michaelmedi

関連する問題