Определение id в mysql заменяет в

Я использую mysql, ЗАМЕНЯЮТ В синтаксис для моего веб-сайта. ниже моя испытательная структура таблицы,

id  name  address
1   Tom   US
2   Dick  UK
3   Harry US
4   Jony  Spain

Вопрос:

REPLACE INTO table_name VALUES (3, 'Roni', 'India')

теперь выполняя этот вопрос MySQL высказывание,

2 ряда (ряда) затронуты. Вставленный id ряда: 4 (Вопрос занял 0.0003 секунды)

Кто-либо может объяснить меня, что делает вышеупомянутые текстовые средства? Whay 2 ряда, затронутые ?

Отношения

3
можно ли переписать использование вопроса ниже синтаксиса, ЗАМЕНЯЮТ В <стол> (, ...) ЦЕННОСТИ (, ...)
добавлено автор DevelopmentIsMyPassion, источник
Также, что производит вас, добираются, когда вы используете ваш Заменять вопрос?
добавлено автор DevelopmentIsMyPassion, источник
Также, что производит вас, добираются, когда вы используете ваш Заменять вопрос?
добавлено автор DevelopmentIsMyPassion, источник
Также у вашей колонки "id" есть какое-либо ограничение?
добавлено автор DevelopmentIsMyPassion, источник
Также у вашей колонки "id" есть какое-либо ограничение?
добавлено автор DevelopmentIsMyPassion, источник
Обновили мой ответ. Надежда это помогает вам. Другой пользователь также обновил ответы. Если вы находите его хорошо тогда, пожалуйста, примите ответы и присудите очко пользователям.
добавлено автор DevelopmentIsMyPassion, источник
можно ли переписать использование вопроса ниже синтаксиса, ЗАМЕНЯЮТ В <стол> (, ...) ЦЕННОСТИ (, ...)
добавлено автор DevelopmentIsMyPassion, источник
ЗАМЕНЯТЬ заявление сначала удаляет отчет с тем же самым первичным ключом и затем вставляет новый отчет. Эта функция возвращает количество удаленных отчетов плюс количество вставленных отчетов.
добавлено автор Bhavik Shah, источник
ЗАМЕНЯТЬ заявление сначала удаляет отчет с тем же самым первичным ключом и затем вставляет новый отчет. Эта функция возвращает количество удаленных отчетов плюс количество вставленных отчетов.
добавлено автор Bhavik Shah, источник
@AshReva да, "id" - автомобиль, увеличивают первичный ключ
добавлено автор Debasish Chowdhury, источник
@AshReva да, "id" - автомобиль, увеличивают первичный ключ
добавлено автор Debasish Chowdhury, источник

5 ответы

Два ряда затронуты, потому что ЗАМЕНЯЮТ В, сделает УДАЛЕНИЕ и затем ВСТАВКУ на ключевом столкновении, таким образом, вы заканчиваете с 2 операциями, сначала УДАЛЕНИЕМ (1 затронутый ряд) и затем ВСТАВКА (2-й затронутый ряд).

Можно хотеть рассмотреть другие решения, поскольку УДАЛЕНИЕ дорогостоящее, так как индексы должны быть обновлены. Во многих случаях ВСТАВКА... на ДВОЙНОМ КЛЮЧЕВОМ основанном на обновлении вопросе будет быстрее.

2
добавлено
Это isn' t автомобиль, увеличивающий, потому что вы определяете стоимость для id явно - стоимость будет только авто приращение если вы don' t определяют определенную стоимость для него. Если вы пробуете, делают простую вставку, определяя стоимость для ID (т.е.: INSERT INTO table_name (600, ' Roni' ' India')) ряд вставит, и следующая стоимость автоприращения будет 601.
добавлено автор shannonman, источник
Хорошо они затрагивают ваши индексы, потому что DELTE и ВСТАВЛЯЮТ, оба требуют, чтобы индексы были обновлены, который является очень дорогой операцией, следовательно если вы используете, ЗАМЕНЯЮТ ВО много, можно хотеть посмотреть на другие способы достигнуть того же самого.
добавлено автор shannonman, источник
"Идентификационная" область в моем столе - авто область приращения и когда я управляю вопросом, id остается тем же самым [т.е. 3]..., но согласно вам it' s сначала удаляют и затем вставляют новый ряд. можно ли, пожалуйста, сказать мне, почему авто приращение просто остановлено, работая? Вы написали, что "УДАЛЯЮТ, дорогостоящее, так как индексы должны быть обновлены" - который означает целый индекс, обновленный для стола?
добавлено автор Debasish Chowdhury, источник
хорошо.... спасибо..., таким образом, это - то, что происходит с моим столом.. после управления вопросом область с id 3 обновила и когда я вставляю новый ряд, авто id приращения становится 5. Так удаление и процесс перевставки [т.е. Заменяют], не производит индексы стола вообще. That' s, почему меня удивили и задали вопрос. Извините за мой бедный английский язык.
добавлено автор Debasish Chowdhury, источник
Хорошо.... имейте смысл.. большое спасибо.. на самом деле я не использую его во много... только один раз, когда и я считаю это вещами.. так или иначе еще раз спасибо:)
добавлено автор Debasish Chowdhury, источник

Два ряда затронуты, потому что ЗАМЕНЯЮТ В, сделает УДАЛЕНИЕ и затем ВСТАВКУ на ключевом столкновении, таким образом, вы заканчиваете с 2 операциями, сначала УДАЛЕНИЕМ (1 затронутый ряд) и затем ВСТАВКА (2-й затронутый ряд).

Можно хотеть рассмотреть другие решения, поскольку УДАЛЕНИЕ дорогостоящее, так как индексы должны быть обновлены. Во многих случаях ВСТАВКА... на ДВОЙНОМ КЛЮЧЕВОМ основанном на обновлении вопросе будет быстрее.

2
добавлено
Хорошо они затрагивают ваши индексы, потому что DELTE и ВСТАВЛЯЮТ, оба требуют, чтобы индексы были обновлены, который является очень дорогой операцией, следовательно если вы используете, ЗАМЕНЯЮТ ВО много, можно хотеть посмотреть на другие способы достигнуть того же самого.
добавлено автор shannonman, источник
Это isn' t автомобиль, увеличивающий, потому что вы определяете стоимость для id явно - стоимость будет только авто приращение если вы don' t определяют определенную стоимость для него. Если вы пробуете, делают простую вставку, определяя стоимость для ID (т.е.: INSERT INTO table_name (600, ' Roni' ' India')) ряд вставит, и следующая стоимость автоприращения будет 601.
добавлено автор shannonman, источник
"Идентификационная" область в моем столе - авто область приращения и когда я управляю вопросом, id остается тем же самым [т.е. 3]..., но согласно вам it' s сначала удаляют и затем вставляют новый ряд. можно ли, пожалуйста, сказать мне, почему авто приращение просто остановлено, работая? Вы написали, что "УДАЛЯЮТ, дорогостоящее, так как индексы должны быть обновлены" - который означает целый индекс, обновленный для стола?
добавлено автор Debasish Chowdhury, источник
хорошо.... спасибо..., таким образом, это - то, что происходит с моим столом.. после управления вопросом область с id 3 обновила и когда я вставляю новый ряд, авто id приращения становится 5. Так удаление и процесс перевставки [т.е. Заменяют], не производит индексы стола вообще. That' s, почему меня удивили и задали вопрос. Извините за мой бедный английский язык.
добавлено автор Debasish Chowdhury, источник
Хорошо.... имейте смысл.. большое спасибо.. на самом деле я не использую его во много... только один раз, когда и я считаю это вещами.. так или иначе еще раз спасибо:)
добавлено автор Debasish Chowdhury, источник

MySQL ЗАМЕНЯЮТ как заявление ОБНОВЛЕНИЯ следующим образом:

REPLACE INTO table_name SET column_name1 = value1 AND column2 = value2
1
добавлено

В вашем случае это смотрит, любит id № 3, был, удаляют и с другой стороны вставленный. Именно поэтому это говорит 2 затронутые отчета. У вашего стола могло бы быть ряд 3, Рони и Индия вставленный и удаленный ряд 3, Гарри, США

0
добавлено

Используйте вопрос как это:

EXPLAIN REPLACE INTO table_name VALUES (3, 'Roni', 'India')

Заметьте, что добавление "ОБЪЯСНЯЕТ" ключевое слово! Таким образом, MySQL объяснит, что продолжается.

Однако, обратите внимание, что ЗАМЕНЯЮТ В, совпадает с INSERT INTO, но он заменит ряд, если будет существовать, и вставьте его если нет. Так, когда будет существовать, это удалит ряд, тогда вставляют новый, и вот почему у вас есть два затронутые ряда.

0
добавлено
Объясните не работает с этим вопросом... it' s предоставление ошибки SQL
добавлено автор Debasish Chowdhury, источник
здесь это, #1064 - у Вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом ' ЗАМЕНИТЕ В ЦЕННОСТИ table_name (3, ' Roni' ' India') ' в линии 1
добавлено автор Debasish Chowdhury, источник
хорошо... получил его..., я обновлю свою MySQL версию.. спасибо за помощь
добавлено автор Debasish Chowdhury, источник
Какова ошибка?
добавлено автор Siki, источник
О, I' m Жаль я Don' t Знают Вашу Версию MySQL, Это должно Быть 5.6.3, Или Выше Быть в состоянии Объяснить На ЗАМЕНЯЮТ... Accroding К MySQL: С MySQL 5.6.3 ОБЪЯСНИТЕ, предоставляет информацию об ИЗБРАННОМ, УДАЛИТЕ, ВСТАВЬТЕ, ЗАМЕНИТЕ и ОБНОВИТЕ заявления. Перед MySQL 5.6.3 ОБЪЯСНИТЕ, предоставляет информацию только об операторах SELECT.
добавлено автор Siki, источник
Пожалуйста.. Готовый всегда, чтобы помочь.
добавлено автор Siki, источник
DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
1 345 участник(ов)

Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.

MySQL
MySQL
995 участник(ов)

The group is about MySQL. For code use hastebin.com. Admin: @smlkw