質問: MYSQLのレコードにそれぞれ値をINSERT INTOをしたいのですが、idに関してはINTのAUTO INCREMENTが設定されており自動で割り当てられていきます。 ここで例えば:strがAの場合でその時のAUTO INCREMENTが100の場合、idstrのカラムには100_Aと言う値をSTR(255)で格納したいと考えております。 もちろん一度 strだけinsertしてからそれを改めてidとともに取得して結合してそのtableにUPDATEをかけることはできるのですが、初回のINSERT時に一括して以下のINSERT INTOを実行することはできますでしょうか? 1) AUTO INCREMENT 2) strに"A"を格納する 2) id,"_",strを結合する (100_A) 3) 2)(100_A)をidstrのカラムに格納する ``` mysql> CREATE TABLE tableA(id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, str VARCHAR(255), idstr(255)); ``` ``` //前略 $sql='INSERT INTO table_A (str) VALUES (:str)'; prepare($sql); //後略 ```
回答: テーブル設計の基礎で学ぶことですが、1つのカラムには1つの意味しか持たせてはなりません。上何桁がある用途で、下何桁が別の用途だったら別々のカラムにします。 質問とは離れますが、INSERTした後、SELECT時に IDと'_A' を結合すれば済むことでは?