#php #mysql
#php #mysql
Вопрос:
у меня есть таблицы, которые выглядят следующим образом :
================================= ==========================
USER NOTE
================================= ==========================
id_u int auto_increment (PK) id_n int auto_increment (PK)
name varchar(50) id_u int (FK)
text varchar(100)
================================= ==========================
Мне любопытно, может ли этот запрос вызвать какие-либо проблемы на веб-сайте с большим количеством пользователей.
$query = "INSERT INTO USER VALUES('','john')"; //query
$result = mysql_query($query);
if($result){
$query = "INSERT INTO NOTE VALUES (LAST_INSERT_ID(),'','abc')";
$result = mysql_query($query);
if($result){
echo "success";
}else{
echo "failed";
}
}else{
echo "failed";
}
Будет ли нормально, если несколько пользователей будут использовать этот запрос одновременно?
Ответ №1:
При одновременном выборе из и вставке в таблицу MySQL создает временную таблицу для хранения строк из SELECT, а затем вставляет эти строки в целевую таблицу. Однако остается верным, что вы не можете использовать INSERT В t … ВЫБЕРИТЕ … ИЗ t, когда t является ВРЕМЕННОЙ таблицей, потому что на ВРЕМЕННЫЕ таблицы нельзя ссылаться дважды в одном и том же операторе
ссылка:http://dev.mysql.com/doc/refman/5.7/en/insert-select.html