質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

2回答

2260閲覧

ALTER TABLE ですでにあるカラムのdefault valueがおかしいというエラーがでる

KinD

総合スコア28

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2021/08/09 10:48

こんにちは
もともとあるテーブルにカラムを追加しようと、ALTER TABLEを実行したところ
追加するカラムに対してではなく、すでにあって運用しているカラムでdefault valueがおかしいというエラーになってしまいます。

このような場合、どうすれば良いでしょうか。
datetimem型のdefault valueを変更しなればいけないのかなと予想はするものの
どのように変更すれば良いのかわかりません。

教えていただけるとありがたいです。

mysql

1mysql> desc table_news 2 -> ; 3+------------+--------------+------+-----+---------------------+----------------+ 4| Field | Type | Null | Key | Default | Extra | 5+------------+--------------+------+-----+---------------------+----------------+ 6| uid | int | NO | PRI | NULL | auto_increment | 7| classname | varchar(100) | YES | | NULL | | 8| items_main | varchar(100) | NO | | NULL | | 9| comment | varchar(100) | YES | | NULL | | 10| pic | longtext | YES | | NULL | | 11| url_link | longtext | YES | | NULL | | 12| updateday | datetime | NO | | 0000-00-00 00:00:00 | | 13| createday | datetime | NO | | 0000-00-00 00:00:00 | | 14+------------+--------------+------+-----+---------------------+----------------+ 158 rows in set (0.00 sec) 16 17mysql> ALTER TABLE table_newstopics ADD commenten varchar(100); 18ERROR 1067 (42000): Invalid default value for 'updateday' 19

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2021/08/09 10:58

「commenten」という列はないようですが、実際にこのような入力をしましたか?
maisumakun

2021/08/09 11:04

あと、MySQLのバージョンはいくつですか?
KinD

2021/08/09 11:15

mysql Ver 8.0.26 for Linux on x86_64でした commenten列を追加しようとalter tableを発行してエラーになった感じです。 デフォルト値の方をNULLに変えるのも早そうですね ありがとうございます!やってみます!
guest

回答2

0

SQLモードが「0000-00-00 00:00:00」を許さない、厳密なモードになっている、という可能性が考えられます。

投稿2021/08/09 11:05

maisumakun

総合スコア145208

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2021/08/09 11:11

あとは「デフォルト値の方をまっとうな値、あるいはNULLに変える」という選択肢もあります。
guest

0

ベストアンサー

投稿2021/08/09 11:00

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Orlofsky

2021/08/09 11:16

おお、sql_mode を忘れていました。フォローありがとうございます。
KinD

2021/08/09 12:13

デフォルトを1000-01-01 00:00:00にすることで解決しました。 ありがとうございました 日付の範囲は範囲は '1000-01-01 00:00:00' から '9999-12-31 23:59:59' なんですね。 考えたこともなかった自分が恥かしいです、、汗
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問