小编pos*_*eat的帖子

SET IDENTITY_INSERT postgresql

我不熟悉postgresql脚本.

我已经在ms sql server中使用了这个脚本:

SET IDENTITY_INSERT my_table ON
INSERT INTO my_table (
  my_identity_field,
  field1,
  field2
) 
SELECT 
  fieldA,
  fieldB
FROM
  my_other_table
WHERE
  fieldC = some_value
SET IDENTITY_INSERT my_table OFF
Run Code Online (Sandbox Code Playgroud)

问题:PostgreSQL中的脚本'SET IDENTIFY_INSERT [table_name] ON/OFF'是什么?

谢谢

解决了 :

INSERT INTO my_table (
  my_identity_field,
  field1,
  field2
) 
SELECT 
  fieldA,
  fieldB
FROM
  my_other_table
WHERE
  fieldC = some_value;

SELECT 
setval(pg_get_serial_sequence('my_table', 'my_identity_field'), 
(SELECT MAX(my_identity_field) FROM my_table));
Run Code Online (Sandbox Code Playgroud)

注意: 'my_table'和'my_identity_field'小写如果它们不是小写(所有字母),我会收到错误

sql postgresql

14
推荐指数
1
解决办法
8244
查看次数

错误:COALESCE类型的时间戳不带时区,并且不能匹配整数(PostgreSQL)

##问题##

我从此脚本(Postgresql 9.3.2)中收到错误(
在MS SQL Server中可以)

SELECT 
 CASE COALESCE(my_date_field,0) 
 WHEN 0 THEN 0 
 ELSE 1 END 
 AS status
FROM 
 my_table
Run Code Online (Sandbox Code Playgroud)

Error :COALESCE types timestamp without time zone and integer cannot be matched
Line 2 : CASE COALESCE(my_date_field,0)

## 解决了 ##

SELECT 
  CASE WHEN my_date_field IS NULL 
  THEN 0 ELSE 1 END 
  AS status
FROM 
  my_table
Run Code Online (Sandbox Code Playgroud)

COALESCE几乎接受任何数量的参数,但是它们应该是相同的data-type
我引用了TSQL中的COALESCE函数

coalesce postgresql-9.3

5
推荐指数
1
解决办法
1万
查看次数

数学'不'整数

为什么delphi在执行循环时执行整数的数学'not'而不是强制转换为布尔值?例

var myint:integer;
...
myint:=1;  
while not myint=5 do
begin
  myint:=myint+1;
  showmessage('myint now is : '+inttostr(myint));
end;    
Run Code Online (Sandbox Code Playgroud)

delphi

5
推荐指数
2
解决办法
298
查看次数

通过"修改日期"确定目录中的哪个文件夹是最新的?

如何通过"修改日期"确定Windows目录中的哪个文件夹是最新的?
喜欢这个,但对于文件夹而不是文件.

我需要创建一个类似的函数 GetLastModifiedFolderName('D:\LogFolder\'):string;

在下面的一些建议(来自MBo)然后阅读一些findfirst引用.我修改了已回答的链接变得像这样:

function TForm1.GetLastModifiedFolderName(AFolder: String): string;
var
  sr: TSearchRec;
  aTime: Integer;
begin
  Result := '';
  aTime := 0;

  if FindFirst(IncludeTrailingPathDelimiter(AFolder)+'*',faDirectory, sr) = 0 then
  begin
    // directory found
    repeat
      if (sr.Attr and faDirectory)=faDirectory then
      begin
        // directory only
        if (sr.Name <> '.') and (sr.name<>'..') then
        begin
          // exclude '.' and '..' directory
          if sr.Time > aTime then
          begin
            aTime := sr.Time;
            Result := sr.Name;
          end;
        end;
      end;
    until FindNext(sr) <> 0;
   FindClose(sr);
 end else …
Run Code Online (Sandbox Code Playgroud)

delphi

0
推荐指数
1
解决办法
164
查看次数

标签 统计

delphi ×2

coalesce ×1

postgresql ×1

postgresql-9.3 ×1

sql ×1