
my_itemsテーブルのIDにAUTO_INCREMENT
を追加ができるかで質問します。
現在のMySQLのテーブルの構造は以下です。
mysql> SHOW CREATE TABLE my_items; my_items | CREATE TABLE `my_items` (
`id` int(11) NOT NULL DEFAULT '0',
`item_name` text NOT NULL,
`price` int(11) NOT NULL DEFAULT '0',
`keyword` int(11) NOT NULL,
PRIMARY KEY (`price`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
------------------------------------------------------
以上です。
質問1
`id` int(11) NOT NULL DEFAULT '0',
にAUTO_INCREMENTを追加する場合
どんなコマンドなりますか?
もしかして 以下で正解でしょうか?
my_items | CREATE TABLE `my_items` (
`id` int(11) NOT NULL AUTO_INCREMENT DEFAULT '0',
`item_name` text NOT NULL,
`price` int(11) NOT NULL DEFAULT '0',
`keyword` int(11) NOT NULL,
PRIMARY KEY (`price`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
質問2
質問1が正解だった場合
追加したらTABLE my_items; のテーブルデータは
消えてなくなりますか?
以上よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
先頭の
my_items |
は表示されたゴミですかね?
(1)idのDEFAULT句と削除
(2)idにAUTO_INCREMENTを指定
(3)PRIMARY KEYはpriceでなく、idにする。
DROP TABLE(データも消える)してから、
CREATE TABLE `my_items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`item_name` text NOT NULL,
`price` int(11) NOT NULL DEFAULT '0',
`keyword` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4;
ALTER TABLEでデータを格納した状態で制約の追加や削除も行えますが、制約に違反する行が存在するとエラーになります。
使い始めたばかりのようなので、DROP TABLEして上記のCREATE TABLEを実行した方がいいと思います。
ありがとうございます。
やっぱりオートインクリメントないみたいです。
phpMyAdmin でAI指定のオートインクリメント
を指定したつもりだったのですが反映されませんでした。
最初から100%無理芸なので
mysql> desc my_items;
+-----------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------+------+-----+---------+-------+
| id | int(11) | NO | | 0 | |
| item_name | text | NO | | NULL | |
| price | int(11) | NO | PRI | 0 | |
| keyword | int(11) | NO | | NULL | |
4 rows in set (0.01 sec)
Aンス:DROP TABLE(データも消える)してから、
なるほどなるほど
やっぱり追加はできないみたいなので全部消してから
じゃないとダメですよね!
mysql> DROP TABLE my_items;
Query OK, 0 rows affected (0.06 sec)
mysql> CREATE TABLE `my_items` (
-> `id` int(11) NOT NULL AUTO_INCREMENT,
-> `item_name` text NOT NULL,
-> `price` int(11) NOT NULL DEFAULT '0',
-> `keyword` int(11) NOT NULL,
-> PRIMARY KEY (`id`)
-> ) ENGINE=InnoDB
-> DEFAULT CHARSET=utf8mb4;
Query OK, 0 rows affected (0.03 sec)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL SHOW CREATE TABLE posts;これって何ですか? 3 2022/08/28 22:57
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- MySQL あと、MySQLの文字コードはutf8 気になりますね 1 2022/12/01 07:22
- MySQL MYSQL エラー 2 2022/10/18 11:37
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- MySQL MySQLのテーブル作成で 自信がありません。 2 2022/08/28 05:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
insertを高速化させたい
-
マイクラPC版のコマンドで効率...
-
VIEWの元のテーブルのindexって...
-
DEFAULT が設定できないのです
-
複数の重複するIDの最新のレコ...
-
verilogに適したvimの設定を探...
-
小人の読み方は?
-
エラー 1068 (42000): 複数の主...
-
SQLite3(PDO)でクエリー件数を...
-
MyISAMからMEMORYに変換した場...
-
画像とカテゴリーを出力したい...
-
エクセルの関数について教えて...
-
DataTableで重複行を削除したい
-
顧客データベースを作る場合、...
-
差し込み後、元データを変更し...
-
python コードについて(初学者...
-
イェイイェイイェイ イェイイェ...
-
for whichの使い方
-
英文読解
-
Word2007でアドインタブが表示...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
select文のwhere句に配列を入れ...
-
VIEWの元のテーブルのindexって...
-
エラー 1068 (42000): 複数の主...
-
SQLにて特定の文字を除いた検索...
-
【Transact-sql】 execの結果を...
-
マイクラPC版のコマンドで効率...
-
SQL Left Join で重複を排除す...
-
sqlで、600行あるテーブルを100...
-
複数テーブルのGROUP BY の使い...
-
WordpressのContact form 7でzi...
-
クエリ表示と、ADOで抽出したレ...
-
SQLサーバから、項目の属性(型...
-
selectした大量データをinsert...
-
Access パラメータクエリをcsv...
-
副問合せの書き方について
-
inner joinをすると数がおかし...
-
insertを高速化させたい
-
[MySQL] 3つのテーブルの結合で...
おすすめ情報