[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблемма с импортом таблиц БД
nikolay_1992
Здравствуйте, прошу помочь решить такую проблему, описываю:
импортирую 2 таблицы с dbf в mysql

1 таблица - people('id' 'name' 'position_cod') под position_cod подразумевается код который состоит из 3 больших букв. Например АМП, БОЛ и т. д. (может быть пустым !!!!)

2 таблица - position('cod','position_name') т е cod это тот же код, а position_name - расшифровка

заливаю в базу эти 2 таблицы с помощью сторонней программы, импортируются нормально, теперь задача стоит связать эти 2 таблицы по коду, какие есть предложения ?



Я пытался сделать следующим образом (не уверен что это совсем правильный путь к решению) - так как в таблице position 50 записей, я добавил еще одно поле id (PK) он выставил автоматом номера например 1 - АМП 2 - БОЛ.
сделал update в первой таблице по этим условиям, т е поменял буквы на числа.
поскольку поле varshar, я создал поле position_cod_id (INTEGER) и перезалил записи в это поле (уже числовое), НО где были пустые значения появился НОЛЬ который не дает мне установить связь между таблицами (ForeignKey)


public function safeUp()
{
$items = [
1 => 'АМП',
2 => 'БОЛ',
3 => 'БРУ',
4 => 'ВКП',
5 => 'ВОС',
6 => 'ВРН',
7 => 'ГПК',
8 => 'ГРИ',
9 => 'ДПВ',
10 => 'ЕТМ',
11 => 'ИНТ',
12 => 'КНР',
13 => 'КОМ',
14 => 'КОН',
15 => 'ЛТП',
16 => 'МОБ',
17 => 'МТ',
18 => 'МЮК',
19 => 'НВР',
20 => 'НКВ',
21 => 'НОК',
22 => 'НТО',
23 => 'ОБС',
24 => 'ОГН',
25 => 'ОЛИ',
26 => 'ОПЕ',
27 => 'ОХР',
28 => 'ПЕТ',
29 => 'ПНП',
30 => 'ПП',
31 => 'ППЛ',
32 => 'ППР',
33 => 'ПР',
34 => 'ПСД',
35 => 'ПСЕ',
36 => 'САП',
37 => 'СВГ',
38 => 'СВД',
39 => 'СВР',
40 => 'СВС',
41 => 'СВУ',
42 => 'СЕУ',
43 => 'СЛЕ',
44 => 'СОВ',
45 => 'СОГ',
46 => 'СОЖ',
47 => 'СПА',
48 => 'СПВ',
49 => 'СПД',
50 => 'СПЕ',
];

foreach ($items as $k => $v) {
$this->update('people', ['position_cod' => $k], "position_cod = '".$v."'");
}

$this->addColumn('people','position_cod_id',Schema::TYPE_INTEGER);

Yii::$app->db->createCommand('update `people` set `position_cod_id`=`position_cod`')->execute();
$this->dropColumn('people','position_cod');
$this->renameColumn('people','position_cod_id','position_cod');


$this->addForeignKey('people_fk4','people','position_cod','position','id','RESTRICT','CASCADE');
}


работаю с Yii2
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.