質問

私はaとしてフィールドを作成しようとしました TINYINT(1), NOT NULL そしてa DEFAULT の値 -1 「不明」を示すために、しかし、クライアントからこのエラーが発生しました。

エラーが変更されます myTable: :SQL構文にエラーがあります。適切な構文のためにMySQL Serverバージョンに対応するマニュアルを確認してください。

また、長さ2を作成しようとしても同じメッセージを受け取りました

推測 TINYINT この種の指定に適したデータタイプではありませんが、何ですか?

編集:Ed Cottrellのコメントを読んだ後、私はそれを機能させました。どこかに余分なキャラクターがあったと思います。ここに私のクライアント(MacにQueriousを使用)が生成した声明がありました。

ALTER TABLE `DBName`.`MyTable`
CHANGE COLUMN `MyColumn` `MyColumn` TINYINT(1) NOT NULL DEFAULT -1  COMMENT ''
AFTER `MyOtherColumn`;

気づいた COMMENT そこに、すべてがきれいであることを確認しました。

他のコメントや回答が高く評価されました。私はさせることにしました NULL この場合は不明です

役に立ちましたか?

解決

これを少し保存する必要があると思います(ストレージサイズを気にかけている場合) NULL 平均「不明」。

field bit(1) default NULL,

フィールドを宣言するのは奇妙に思えます not null そして、本質的に、意味する特別な価値を持つこと NULL.

編集:

次の構文は「機能します」 SQLフィドル:

create table t (
  val int,
  flag tinyint(1) default -1
 );

デフォルト値が「-1」ではなく「1」として印刷されるため、「作品」は引用符です。結局のところ、 (1) 1桁を印刷するだけです。

おそらく、MySQLの以前のバージョンでは、それが表示されるとエラーが生成されます -1 正しく表示されません。 (正直に言うと、それは私を驚かせるでしょう。)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top