- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 postgres 数据库中创建一个带有 ENUM 字段的表。
通常,当我们在 postgresql 中创建枚举时,我们命名枚举和我们想要设置枚举的列,选择该枚举名称。但我如何在 Codeigniter 中执行此操作?
下面是我的代码:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Migration_Admin_Locations extends CI_Migration {
public function up()
{
$this->dbforge->add_field(array(
'id' => array(
'type' => 'INT',
'null' => FALSE,
'auto_increment'=>TRUE,
'constraint' => 11,
),
'location_name' => array(
'type' => 'VARCHAR',
'constraint' => 50,
'null' => TRUE,
),
'tenant_id' => array(
'type' => 'INT',
'null' => TRUE,
),
'description' => array(
'type' => 'VARCHAR',
'constraint' => 128,
'null' => TRUE,
),
'is_default' => array(
'type' => 'ENUM("a","b","c")',
'default' => "a",
'null' => TRUE,
),
));
$this->dbforge->add_key('id');
$this->dbforge->create_table('admin_locations');
$query = $this->db->get('admin_locations');
$res=$query->num_rows();
if($res==0)
{
$data = array(
'id'=>"1",
'location_name'=>"default site",
'tenant_id'=>"1",
'description'=>"This is default site for portal",
'is_default'=>"a",
);
$this->db->insert('admin_locations', $data);
}
}
public function down()
{
$this->dbforge->drop_table('admin_locations');
}
}
但这会引发错误:
A PHP Error was encountered Severity: Warning
Message: pg_query(): Query failed: ERROR: type "enum" does not exist LINE 6: "is_default" ENUM("a","b","c") DEFAULT 'no' NULL ^
Filename: postgre/postgre_driver.php
Line Number: 242
Backtrace:
最佳答案
在 PostgreSQL 中,您必须首先创建枚举类型,然后将其用作字段类型。参见 PostgreSQL 枚举类型 documentation供引用。
我不太了解 CI,但我看到了 Database Forge class不支持创建枚举类型,因此您必须首先使用纯 SQL 或某些 CI SQL 构建器创建它,然后您可能可以在 add_field
中使用该枚举类型名称。方法。
关于php - 使用 Codeigniter 迁移和 DBFORGE 在 POSTGRESQL 中创建 ENUM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54071841/
我正在使用一个包含 950 个表的非常大的数据库。 尝试创建 ERM 是荒谬的,但我是这家公司的新人,我需要了解他们的关系。 这是一家零售公司,因此很多表格都是产品详细信息,毫无用处。我已经找到了一些
首先 我有一个包含 1500 条记录的表 我使用的是 MySQL 5.0.54。 我正在使用 dbForge for MySQL 5.0.97 表格: CREATE TABLE IF NOT EXIS
我试图将默认值插入到新创建的表中,但是创建的表没有任何值。创建表后如何使用 dbForge 插入值? 我的 Controller 代码如下: $fields = array('id' =>
有没有办法告诉mysql字段从n或1000开始计数 对于下面的示例,我希望 ID 从 1000 而不是 1 开始。 $tables = array( 'products' => array(
我正在尝试在 CodeIgniter 中编写一个脚本,该脚本将创建一个数据库,然后将表添加到新创建的数据库以及新表中的各种字段。 到目前为止,我已经使用 dbforge 来创建新数据库,但由于我使用的
如何使用 Codeigniter Dbforge 迁移使 financial_year 字段唯一? function up() { $this->dbforge->add_field(arra
我正在使用 codeigniter,我正在尝试将以下查询转换为 dbforge 样式查询,我该怎么做? create table filter ( filterid int primary k
我正在尝试使用 dbForge 在 MariaDB 中创建一个存档表,但在保存该表时出现以下错误。 Unexpected Symbol 'NONE' dbForge 自动更改以下行: PRIMARY
我编写了这段代码,以便与 CodeIgniter 中的 Dbforge 一起使用。 $fields = array( 'time_stamp' => array
我正在使用 dbForge 检查我的查询,以确保它们是最佳的或尽可能最佳的。我有以下内容,几乎可以用于所有事情,只要我正确阅读它们,结果就会让我有点害怕。 数据库设置的基本要点是帐户、计算机、用户(链
我正在使用 CI 3 构建 Web 应用程序,我必须使用 2 个不同的数据库连接来满足某些要求。我已将配置加载到 database.php 文件中,当然我可以使用内置类连接到它们。 $db['defa
我非常喜欢 DBForge,因为它能够使用图形 UI 创建数据库方案。 MongoDB 有类似的工具吗? 基本上,我正在寻找一种有助于创建干净的 MongoDB 集合和文档的工具。 几周后我将开始一个
我正在尝试创建一个 db 用户并将他分配给已经使用 dbforge 库创建的新数据库: $this->dbforge->create_database( $oData->db_name ); 我的问题
我正在使用此查询在数据库中创建表: $this->dbforge->add_field("label varchar(100) NOT NULL DEFAULT 'default label'");
我想设置更新属性以获取我的应用程序的更新时间。这是我的模型代码: public function createDatabase() { $testdatabase = "testdatabas
我创建了一个 ENUM 字段,这是我的代码: $field['test'] = array( 'type' => 'ENUM', 'constraint' => array('a','b','
我正在学习 CodeIgniter,现在我想创建带有 DATETIME 字段的 MySQL 表。 我在 Install_Model.php 中有这段代码 $Fields = array(
我想在 postgres 数据库中创建一个带有 ENUM 字段的表。 通常,当我们在 postgresql 中创建枚举时,我们命名枚举和我们想要设置枚举的列,选择该枚举名称。但我如何在 Codeign
我需要能够从名为 dbforge query builder 的程序通过 MAMP(非专业版)访问我在主机中运行的 mysql 数据库在windows主机上运行。我尝试将主机的 ip 地址放入程序中,
我使用 PyroCMS 和 CI 已经有一段时间了,并且非常喜欢它。 我正在扩展一个数据库模块,该模块将允许管理员用户管理数据库,而无需使用 phpMyAdmin 之类的东西。 然而,我唯一能够开始工
我是一名优秀的程序员,十分优秀!