Если вы планируете создать новую таблицу city с данными о городах, то есть по одной строке для каждого города, тогда прочитайте ответ.
Если, с другой стороны, вы планируете создать новую таблицу для каждого города с одинаковыми столбцами, то ваш план очень плохой.Сначала прочитайте о нормализации.
Первая альтернатива - создать таблицу с именем city
с необходимыми полями.Пример:
CREATE TABLE city
( id INT auto_increment PRIMARY KEY
, name VARCHAR(50) NOT NULL
, population INT
, state CHAR(2)
) ;
Затем скопируйте в него названия разных городов с помощью:
INSERT INTO city (name)
( SELECT DINSTINCT city --- change "city" into REPLACE(city, ' ', '_')
FROM table_A --- for the small changes you want
) ;
Затем обновите другие поля (население, штат и т. Д.).
Если никакие два города не имеют одинакового названия, то JOIN
между двумя таблицами можно сделать, используя ON table_A.city = city.name
Если нет, (и лучше в любом случае, так как Primary Key
из city
будет меньше), вы можете ALTER
структуру table table_A
, добавив поле cityid
и опустив поле city
.Затем JOIN
s между двумя таблицами будет выполнено с использованием ON table_A.cityid = city.id
Второй вариант - создать город таблицы с помощью:
CREATE TABLE city AS
( SELECT DINSTINCT city AS name --- change "city" into REPLACE(city, ' ', '_')
FROM table_A --- for the small changes you want
) ;
и затем изменить таблицуопределение первичного ключа, добавление (население, штат и т. д.).