Синтаксис SQL с использованием CONCAT - PullRequest
0 голосов
/ 07 июля 2011

У меня есть таблица T1 с некоторыми полями, такими как

id,key_id ,name,date etc..
  • id - поле с автоинкрементом
  • key_id - это значение, полученное из идентификатора, например префикс / идентификатор
  • Prefix является константой для всех строк, и просто изменяется id, который является идентификатором соответствующей строки.

Это выглядит примерно так

$sql = " ALTER TABLE T1 AUTO_INCREMENT = 1234567890, 
           ADD id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT ";

UPDATE T1
   SET key_id = CONCAT('12.345','/',id)

Теперь по некоторым причинам я хочу создать новую таблицу T2, которая будет родительской для T1, а id будет первичным ключом T2, а Key_id станет первичным ключом T1. T2 также должен включать в себя два других поля, такие как key_id и name ..

хорошо, главная причина родительской таблицы: я мог бы создать другую таблицу T3, которая также будет иметь id и id должны иметь разные значения для T1 и T3, поэтому я хочу сохранить основную таблицу с идентификатором первичного ключа и другими дочерние таблицы будут получать идентификаторы только из основной таблицы.

Как я могу это сделать?

1 Ответ

1 голос
/ 07 июля 2011

Почему вы хотите хранить избыточные данные в другом столбце "key_id"?

Поскольку префикс постоянен, идентификатора достаточно. Выполните объединение в своем коде.

Кроме того, таким образом, вы можете использовать id в качестве первичного ключа для обеих таблиц и получить key_id с префиксом «Префикс».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...