以下のようなテーブル定義があります。
CREATE TABLE categories ( id int(11) NOT NULL AUTO_INCREMENT, title varchar(128) NOT NULL UNIQUE, PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; INSERT INTO categories (title) VALUES ('未選択'), ('たまご'), ('やさい'), ('おにく') ;
諸事情あって、あるマスタデータの初期値(「未選択」)をテーブルに格納することになりました。
この初期値を用いてアプリケーションの条件分岐を書きますので、初期値がDBから削除されると色々都合が悪いです。
ので、この最初の1行目(id 1)だけは削除されないようにロックしたいです。(更新はできてもいいし、できなくてもいいです)
どのようにすれば、行削除を禁止することが出来ますでしょうか?
あるいは、SQLではそのようなことはできませんか?(アプリケーション側の記述で対応するべき?)
皆様ご助言の程よろしくお願いいたします。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/05 01:50
2019/02/05 02:01