ALTER TABLEのALTER COLUMNで、NULL値の許可/禁止を変更する際の
構文についてなのですが、
CREATE TABLE TABLENAME (FIELD1 INT NOT NULL)
上記の様なテーブルで、FIELD1フィールドのNULL禁止を許可に変更する際、
ALTER TABLE TABLENAME ALTER FIELD1 INT NULL -- A
という構文になるかと思いますが、この際、フィールドの型(タイプ。ここでは
INT)の指定って、何故、必要となる構文になっているんでしょうね。
極端な構文ですが、
ALTER TABLE TABLENAME ALTER FIELD1 VARCHAR(10) NULL
とすると、NULL値許可だけでなく、フィールドの型までも変ってしまう(当然
ですが)
Aの構文は、NOT NULL -> NULL に変更する構文でなく、まず、
INT -> INT に変更して、そのついでに NOT NULL -> NULL に変更しますよ、
という構文に思えてしまうのですが。
何故、NOT NULL / NULL を単独に(COLLATEもそうだと思うのですが)変更できる
構文じゃないんでしょうね。
と、ここで質問しても何がどうなるというものではないんですが、素朴に何故?
って思ったので、質問させていただきました。
最後まで読んで頂いてありがとうございます。