Как я могу добавить столбец перед другим столбцом в dbforge?
Я хочу добавить столбец с именем 'accept_loc', введите 'VARCHAR' в 3 таблицы базы данных (используйте библиотеку dbforge из codeigniter). Предположим, они названы t1,t2,t3.
структура t1:
- Я бы
- bla_bla
- pick_up_loc
- ....
структура t2:
- Я бы
- pick_up_loc
- ....
структура t3:
- Я бы
- bla_bla
- pick_up_loc
- ....
если бы я использовал этот код ниже в моей функции перехода вверх:
$fields = array(
'accept_lat' => array(
'accept_loc' => 'VARCHAR',
'constraint' => '50',
'after' => 'id',
),
);
$this->dbforge->add_column('t1',$fields);
$this->dbforge->add_column('t2',$fields);
$this->dbforge->add_column('t3',$fields);
результат:
структура t1:
- Я бы
- accept_loc
- bla_bla
- pick_up_loc
- ....
структура t2:
- Я бы
- accept_loc
- pick_up_loc
- ....
структура t3:
- Я бы
- accept_loc
- bla_bla
- pick_up_loc
- ....
это не очень хорошая структура. Как я могу добавить столбец перед 'pick_up_loc' для всех из них (n таблиц базы данных).
4 ответа
Пожалуйста, попробуйте поставить после в верхнем регистре, то есть "ПОСЛЕ", в этом была ошибка after
Ключ и упомянутое исправлено здесь.
$fields = array(
'accept_lat' => array(
'accept_loc' => 'VARCHAR',
'constraint' => '50',
'AFTER' => 'id'
)
);
Третий аргумент в add_column() - это $after_field. Таким образом, вы не можете добавить столбец перед другим столбцом, но вы можете сделать это:
$this->dbforge->add_column('t1', $fields, 'bla_bla');
$this->dbforge->add_column('t2', $fields, 'id');
$this->dbforge->add_column('t3', $fields, 'bla_bla');
Кроме того, вы, кажется, называете поле accept_lat и затем используете accept_loc вместо элемента type, который запутывает вещи.
Поздно к вечеринке, но для пояснения ваш код, например, на t1 должен выглядеть так:
$fields = array(
'accept_lat' => array('type' => 'TEXT')
);
$this->dbforge->add_column('t1', $fields, 'id');
Таким образом, accept_lat будет добавлен после столбца id в таблице t1.
Судя по нашей оценке, проблема не связана с функциональностью нашего продукта.
Пожалуйста, обратитесь к документации по адресу https://codeigniter.com/userguide3/database/forge.html .
Обратите внимание на следующий пример, приведенный в документации – он должен помочь вам решить проблему.
$this->dbforge->add_field(""""label varchar(100) NOT NULL DEFAULT 'метка по умолчанию'"""");
Если проблема не устранена и связана с нашим программным обеспечением, заполните форму ниже. Предоставьте нам подробное описание проблемы и предпринятых вами действий. Кроме того, прикрепите соответствующие снимки экрана, чтобы помочь нам лучше понять проблему.
Обратите внимание, что вам необходимо использовать последнюю версию dbForge Studio.