
My SQL バージョン5.5です。
学校で習っている時に
追加で、 not nullを設定しようと思い、
modify文を色々試して使いましたが Syntaxのエラーが出て、
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' c_pass not null' at line 1
(※c_pass はカラム名です)
change 型名(桁数)を使うと変更できました。
なぜmodifyなどでは追加変更出来なかったのか、原因がわかる方はいらっしゃいますか?
バージョンの問題ですか?
No.5ベストアンサー
- 回答日時:
#2です
>そのパターンは無理でした。
なにか読み間違えていると思いますが・・・
もしかしたら5.5でできないのでしょうか?
以下ためしてみてください。
create table hoge (id int not null,data int null);
insert into hoge values(1,100),(2,null),(3,200);
alter table hoge modify data int not null;
nullだったid=2のdataは0になるはずです
No.4
- 回答日時:
データ型によって、(length) を省略できるものと出来ないものがあります。
マニュアルをしっかり読んでください。 [] で括られてるのは省略可能、括られてない char(length),varchar(length) は文字数必須。通常「カラム型」という時、(length)を省略出来ない型のときはこれも含めての意味で、「カラム型」といいます。
http://dev.mysql.com/doc/refman/5.1/ja/create-ta …
http://dev.mysql.com/doc/refman/5.1/ja/alter-tab …
modify のときは、
alter table MODIFY [COLUMN] column_definition
だからカラム型省略不可。カラム型不要なのは、drop の時
ブランク:空白文字と書かないと通じませんか。。。
>near ' c_pass not null
' の次に半角空白があるけど、質問入力時に入れてしまっただけなのか、この文字にエラーの元があったのか(実は全角空白だったかも)と考えただけです。
この回答への補足
難しいマニュアルですね。
省略というキーワードでページ検索してみましたが、ありませんでした。どのあたりにこの話が載っているでしょうか?
No.3
- 回答日時:
エラーで表示されるsql文の先頭にブランクがあるというのは、全角空白でも入れてたんじゃないの?質問文では半角になってるが、どうだかあやしい。
それとも「型名(桁数)」でいけたと言うことは、桁数入れ忘れのせいかな? varchar やcharは、桁数っていうより文字数必須なんだけど。何型だったんだろう?
おおむね、質問文に書かれてない、または、そのまま入力されてない部分に原因がある。
この回答への補足
>桁数入れ忘れのせいかな?
>文字数必須なんだけど
型名・文字数を入れたら出来ました。ただ、ネットにある情報では桁数やあるいは型名すらない文もありますが、バージョンの違いですか?
それとブランクとは何のことですか?
No.1
- 回答日時:
> modify文を色々試して使いましたが
そういうときはね、その「modify文」も書くほうが良いですよ
この回答への補足
試したのは以下の通りです。
ALTER TABLE テーブル名 MODIFY COLUMN カラム名 型 NOT NULL;
ALTERテーブル名 MODIFY カラム名 NOT NULL;
ALTER TABLE テーブル名MODIFY COLUMN カラム名not null
ALTER TABLE テーブル名 MODIFY COLUMN カラム名 型 NOT NULL
ALTER TABLE テーブル名MODIFY カラム名not null
ALTER TABLE テーブル名MODIFY field カラム名not null
Alter table テーブル名ADD カラム名not null
結構いろんなパターンをやり尽したつもりなんで、あえて書く必要なかったかなあと思って。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
構造が異なる二つのテーブルをu...
-
カラムとコラムの使い分け
-
UNIONする際、片方テーブルしか...
-
ホームページを作ろうと思いま...
-
AUTO_INCREMENTに0はダメ?
-
GREATESTで NULLをスルーする方...
-
now()かCURRENT_TIMESTAMPか
-
ROUND関数で、四捨五入ができな...
-
ドロップダウンリストの連動し...
-
MySQL(5.5)1テーブル内のカラ...
-
【SQL】select に ワイルドカー...
-
MYSQLで全てのカラムから検索す...
-
カラムをコピーして、新規カラ...
-
SQLで、行ごとのとある要素を比...
-
INDIRECT関数の代替方法は?
-
DBの定義のサイズを大きくし過...
-
他のシートの検索
-
インデックスについて
-
type date にnullをinsert
-
Accessで複数(3以上)...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
一部のカラムでdistinctし全て...
-
SELECT文で、指定カラム以外の...
-
UNIONする際、片方テーブルしか...
-
ホームページを作ろうと思いま...
-
AUTO_INCREMENTに0はダメ?
-
SQLでカラムを追加し、条件に合...
-
now()かCURRENT_TIMESTAMPか
-
カラムとコラムの使い分け
-
(初心者)MySQLやmaraDBで、crea...
-
GREATESTで NULLをスルーする方...
-
構造が異なる二つのテーブルをu...
-
sql , insert で空行(全ての列...
-
MYSQLで全てのカラムから検索す...
-
エクセルかワードで家系図を作...
-
Excel VBA
-
カラムをコピーして、新規カラ...
-
Mysql DATE型のDEFAULT値
-
ドロップダウンリストの連動し...
-
MySQLで論理名を取得する方法
-
MySQL(5.5)1テーブル内のカラ...
おすすめ情報