Можно ли использовать следующий идентификатор Auto_increment и объединить его с префиксом при вставке?
В моей таблице у меня есть столбец с именем id, и он является основным и автоматически увеличивается.
Теперь я хотел бы сохранить это число с текстом в другом столбце.
Это было бы ложью:
id nr1 nr2 concated
-----------------------------
0 123 123_missing-0
1 234 234_missing-1
2 423 2 423_2
3 342 1 342_1
4 564 564_missing-4
Там, где отсутствует nr2, мне все еще нужно уникальное значение, и поэтому я подумал об использовании префикса с id Concated.
Я использую PHP, PDO и mySQL.
INSERT INTO mytable SET column2 = CONCAT("hello_", id)
Зачем вам это делать, если вы можете получить эту строку, отформатированную в запросе SELECT? СУХОЙ !
какое отношение к этому имеет PDO? Вы выполняете через MySQL или PHP?
Почему я это делаю, не должно быть частью вопроса! Я думал сделать это в PHP, но может быть, я могу сделать это в mySQL как автоматическую операцию при вставке?
@treyBake Причина, по которой я упоминаю PDO, заключается в том, что я нашел некоторую информацию об этом в mysq_li. Но запрос в PDO может работать немного иначе.






Я бы предпочел обработать этот вариант использования при запросе базы данных, а не вставке. Похоже, что он отформатирован для отображения, если это так, вы можете написать запрос SELECT следующим образом:
SELECT id, CONCAT("hello_", id)
FROM table;
Будет ли приветствие зависать на идентификаторе столбца в этом запросе? Что делать, если мне нравится новый столбец для Concat? Я хочу сохранить префикс и идентификатор в новом столбце. Может быть, это можно сделать внутри mySql?
Вы можете сделать это, написав триггер AFTER INSERT, но я бы не стал этого делать, поскольку (а) это плохой дизайн и (б) это повлияет на производительность, если все INSERT запросы. Не могли бы вы сообщить мне, каков вариант использования?
Мне нужно найти дубликаты. Объединение Nr1 и Nr2 (Nr1_N2) создает своего рода идентификатор. Могут быть дубликаты этого номера комбайна, но мне нужно их найти. Nr1 всегда есть, а Nr2 нет. Поэтому мне нужно было создать уникальный номер для «Nr2», когда он пуст. Я знаю, что могу создать запрос для выбора и объединить Nr1 и Nr2, но это было бы слишком много работы, чтобы переписать много запросов. Итак, прежде всего, мне нужно было создать что-то уникальное для недостающего Nr2...
Вероятно, это возможно; но это действительно плохая идея.