小编Sel*_*edy的帖子

如何在PostgreSQL中设置自动增量主键?

我在PostgreSQL中有一个包含22列的表,我想添加一个自动增量主键.

我试图创建一个名为idBIGSERIAL类型的列,但pgadmin响应错误:

ERROR: sequence must have same owner as table it is linked to.
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?如何在PostgreSQL中添加创建自动递增主键而无需再次重新创建表?

sql postgresql

251
推荐指数
6
解决办法
43万
查看次数

有bash脚本回答交互提示

是否可以让bash脚本自动处理通常以默认操作呈现给用户的提示?目前我正在使用bash脚本来调用内部工具,该工具将向用户显示提示(提示Y/N)以完成操作,但是我写的脚本需要完全"不干涉",所以我需要一种方法发送Y|N到提示,以允许程序继续执行.这可能吗?

linux bash automation prompt command-prompt

95
推荐指数
6
解决办法
12万
查看次数

PHP获得实际的最大上传大小

使用时

ini_get("upload_max_filesize");
Run Code Online (Sandbox Code Playgroud)

它实际上为您提供了php.ini文件中指定的字符串.

将此值用作最大上载大小的参考是不好的,因为

  • 也可以使用所谓的shorthandbytes1M等,这些需要大量的额外解析
  • 例如0.25M,当upload_max_filesize是,它实际上是ZERO,使得再次更难解析值
  • 另外,如果值包含任何空格,例如它被php解释为ZERO,而它在使用时显示没有空格的值 ini_get

那么,有没有办法让PHP实际使用的值,除了报告的ini_get那个,或者确定它的最佳方法是什么?

php

52
推荐指数
4
解决办法
8万
查看次数

PostgreSQL将记录转换为复合类型

我们知道,有一种简单的方法可以将任何记录转换为PostgreSQL中相应的复合类型,如下所示:

CREATE TYPE test.t_test AS (
   mytext text,
   myint integer
);

SELECT ('text', 10)::test.t_test;  -- will succeed
Run Code Online (Sandbox Code Playgroud)

但是对此的一个不便是 - 如果目标类型被修改(例如添加了一个字段) - 那么演员将会破坏:(

ALTER TYPE test.t_test ADD ATTRIBUTE mychar char(1);

SELECT ('text', 10)::test.t_test;  -- will fail
Run Code Online (Sandbox Code Playgroud)

CREATE CAST对于这种情况可能会有所帮助,但我无法将伪类型RECORD作为参数传递给转换函数.并且类型继承和复合类型默认值(如表)都不起作用.有没有其他方法可以实现兼容性?

当然可以使用类似CREATE FUNCTION test.to_t_test(t text, i integer, c char DEFAULT '') RETURNS test.t_test然后执行的显式强制转换函数

SELECT test.to_t_test('text', 10)  -- OK
SELECT test.to_t_test('text', 10, '1')  -- OK
Run Code Online (Sandbox Code Playgroud)

然后使用默认参数值.但这种方式既不清楚也不舒服.

sql postgresql casting

13
推荐指数
1
解决办法
3645
查看次数

可空值的棘手逻辑XOR

我有2个可空CHAR列,我需要检查其中只有一个是否为null.

(a IS NULL AND b IS NOT NULL) OR (a IS NOT NULL AND b IS NULL)
Run Code Online (Sandbox Code Playgroud)

无聊.我想避免为此创建自定义函数.

我在考虑类似的事情

COALESCE(a, 1) + COALESCE(b, 1) = 1
Run Code Online (Sandbox Code Playgroud)

但只要achar- 它会导致操作数类型错误.

那么,任何棘手的解决方案?

sql postgresql postgresql-8.4

12
推荐指数
2
解决办法
3295
查看次数