postgresql -- Пример создания таблицы с внешним ключом (foreign key) с помощью миграции (Symfony)
Primary tabs
Создание таблицы реализовано с помощью миграции Symfony4. Но если вам требуется чистый код SQL, не пугайтесь, - просто возьмите код, передаваемый в качестве аргумента методу addSql(). Его же можно напрямую вводить в консоли БД.
Собственно пример создания таблицы в PostgreSQL. Помимо непосредственно полей, создаются Constraint-ы (Primary key, foreign key) и Sequence (генератор последовательности).
<?php
declare(strict_types = 1);
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
class Version20180424105725 extends AbstractMigration
{
public function up(Schema $schema): void
{
$this->addSql('CREATE TABLE product_field ('
. ' id INT NOT NULL,'
. ' name character varying(255) DEFAULT NULL,'
. ' value character varying(255) DEFAULT NULL,'
. ' product_id INT DEFAULT NULL,'
. ' created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL,'
. ' updated_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL,'
. ' CONSTRAINT product_field_primary_key PRIMARY KEY(id))');
$this->addSql('CREATE SEQUENCE product_field_sequence START 1');
$this->addSql('alter table if EXISTS ad_product_field
ADD CONSTRAINT product_fields FOREIGN KEY (product_id) REFERENCES product(id) ON DELETE CASCADE;');
}
public function down(Schema $schema): void
{
$this->addSql('drop table ad_product_field');
}
}Источники
- Log in to post comments
- 4526 reads