【问题标题】:How to CREATE TABLE copying "Default" and "Constraints" of the previous table in PostgreSql using PHP?如何使用 PHP 创建表在 PostgreSql 中复制上一个表的“默认”和“约束”?
【发布时间】:2019-10-04 10:28:16
【问题描述】:

我无法从另一个已经存在的表中创建类似于/与约束和默认值一样的表。

我已尝试关注

$sql = "CREATE TABLE schemas.a AS TABLE schemas.b";

这会创建表,但不会复制任何约束或默认值。

$sql = "CREATE TABLE schemas.a (LIKE schemas.b INCLUDING CONSTRAINTS)";

这将创建仅具有非空约束的表。 仍然是主键约束和默认值没有被转移。

php中使用的编码

$sql = "CREATE TABLE schemas.a (LIKE schemas.b INCLUDING CONSTRAINTS)";
pg_query($con, $sql);  //This is in the PHP

我想创建具有所有已设置约束(主要、唯一、非空)和默认值的表。

【问题讨论】:

  • 代码在 PHP 之外工作?不是postgresql 用户,但该行为与 PHP 相关似乎很奇怪。
  • 这和php无关,只是PostgreSQL的CREATE TABLE命令。

标签: php postgresql


【解决方案1】:

试试下面的sql:

CREATE TABLE schemas.a (
    LIKE schemas.b
        INCLUDING ALL
);

有关CREATE TABLE 命令的更多信息,请查看文档:https://www.postgresql.org/docs/current/sql-createtable.html(也许您需要切换到您的版本。搜索like_option 以在页面上找到相关信息。)

【讨论】:

  • 不知道这个问题,但这个工作。早些时候我尝试过这样的事情,但遇到了错误。包括所有的作品都很完美。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-19
  • 2021-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
相关资源
最近更新 更多