如何添加Check Constraints迁移Codeigniter PostgreSQL

时间:2015-05-22 14:49:12

标签: php codeigniter migration

我正在尝试执行以下迁移表:

SQL:

CREATE TABLE 
(
    product_no integer,
    name text,
    price numeric positive_price CHECK (price> 0) 
);

PHP:

$this->dbforge->drop_table('products', true);
$this->dbforge->add_field(array(
   'product_no' => array(
      'type' => 'INTEGER'
    ),
   'name' => array(
      'type' => 'VARCHAR',
      'constraint' => '20'
    ),
   'price' => array(
      'type' => 'NUMERIC',
      'constraint' => 'CONSTRAINT positive_price CHECK (price > 0)'
   )
));
$this->dbforge->add_key('product_no', TRUE);
$this->dbforge->create_table('products');

但生成的查询无效:

SQL:

CREATE TABLE "products" ( "product_no" INTEGER NOT NULL, "name" VARCHAR(20) NOT NULL, "price" NUMERIC(positive_price CHECK (price > 0)) NOT NULL )

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

花了一些时间思考找到的解决方案。使用'迁移'来生成与示例相同的表格。足以添加' CHECK(价格> 0)'完成课程后。

PHP:

'price' => array(
   'type' => 'NUMERIC CHECK (price > 0)'
)