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
- 4163 reads