ERROR: Specified types or functions (one per INFO message) not supported on Redshift tables. [SQL State=0A000]
查询本身是非常直接的,所以我不确定为什么我一直得到这个,有人可以建议
(SELECT array_to_string(array(select column_name::text from information_schema.columns where table_name= 'customer_insert' order by ordinal_posi
我正在尝试使用下面的查询插入未来10天的所有日期。
INSERT INTO sda.all_dates (checkin)
SELECT CURRENT_DATE + generate_series(0, 10) AS checkin;
但无法执行,出现错误
INFO: Function "generate_series(integer,integer)" not supported.
ERROR: Specified types or functions (one per INFO message) not supported on Redshift tables.
当
执行Redshift insert查询时,出现的其中一个值是超出long (Long valid range -9223372036854775808 to 9223372036854775807)范围的45145124512145554112124。在这种情况下,如何才能包含此记录,以便即使在该范围内的其他记录也能成功插入?如何处理Redshift溢出错误?
我正在使用超级用户(admin)创建表,并尝试GRANT ALL并更改表的所有者。 我在Redshift中运行以下语句,其中(非超级用户) john是developers组的成员(并且只是developers组的成员): GRANT ALL ON users.addresses TO GROUP developers;
ALTER TABLE users.addresses OWNER TO john; 我已经确认用户john拥有对users.addresses的select/insert/delete/update权限,并且是表的所有者。我还确认了用户john对users模式具有USAGE
我正在尝试在Redshift中生成时间序列并将其插入到表中,但没有成功。到目前为止,我尝试了以下几点:
insert into date(dateid,date)
SELECT
to_char(datum, 'YYYYMMDD')::int AS dateid,
datum::date AS date
FROM (
select '1970-01-01'::date + generate_series(0, 20000) as datum
) tbl;
获取以下错误
SQL Error [500310] [0A000]: [Am
在redshift中创建存储过程时,如下所示:
CREATE OR REPLACE PROCEDURE sp_test()
AS '
BEGIN
TRUNCATE TABLE TABLE_1;
INSERT INTO TABLE_1
SELECT COL1, COL2
FROM TABLE_2
WHERE CONDITION='SAMPLE';
END;
'
LANGUAGE plpgsql;
这会给出一个错误syntax error near 'SAMPLE',因为single quotes is already
由于RedShift中不支持用户定义函数或存储过程,如何在使用PostgreSQL 8.0.2分支ParAccel的RedShift中实现UPSERT机制。
目前,我正在尝试使用IF...THEN...ELSE实现UPSERT机制...语句例如:-
IF NOT EXISTS(SELECT...WHERE(SELECT..))
THEN INSERT INTO tblABC() SELECT... FROM tblXYZ
ELSE UPDATE tblABC SET.,.,.,. FROM tblXYZ WHERE...
这给了我一个错
我正在尝试创建一个临时表并在Redshift中将数据插入其中。我的目标是为唯一的 doc_id创建一个记录,其中doc_id 不是NULL。
这是我的密码:
-- Creating temp table to load only rows with unique and not null doc_id
DROP TABLE IF EXISTS TMP_table CASCADE;
CREATE TEMP TABLE IF NOT EXISTS TMP_table
(
uuid varchar,
id integer,
doc_id integer,
reven
嗨,我有一个Redshift DB,正在尝试将表“扫描”/列"net_rate“(数据类型为数字)中的数据插入另一个表"visits_by_scan”/列"scan_cost“(数据类型为数字)。我使用的查询如下:
insert into visits_by_scan (scan_cost)
select sum(cast(s.net_rate as decimal(30,4)))
from scans s
当我试图运行此查询时,会收到以下数字溢出错误消息:
如何插入数据而不出现任何错误?任何帮助都是非常感谢的。
根据子句的Redshift,您可以在INSERT INTO...SELECT语句中使用WITH子句。然而,在测试这一点时,我会得到以下错误。这是不可能的,还是我的语法错误?
CREATE TABLE TestCTEInsert (SomeTimestamp TIMESTAMP);
WITH CTE AS
(SELECT GETDATE() as SomeTimestamp)
INSERT INTO TestCTEInsert
(SomeTimestamp) SELECT SomeTimestamp from CTE;
错误: 42601:“插入”或“插入”附近的语法错误
有趣的
我面临着一项任务,无法从Amazone Redshift中提取大量数据到另一个表。这肯定需要一种更有效的方法,但我对SQL和AWS并不熟悉,所以决定向这个聪明的社区征求意见。
这是我最初的SQL查询,它要花费很长时间:
-- STEP 1: CREATE A SAMPLE FOR ONE MONTH
SELECT DISTINCT at_id, utc_time, name
INTO my_new_table
FROM s3_db.table_x
WHERE type = 'create'
AND (dt BETWEEN '20181001' AND '
我想做以下几点:
#choosing one column called "z" from select
select<-read.table(file='dane.txt', header=TRUE)
n=select$z
#defining f function
f<-function(redshift) {
0.2*(sqrt(0.3*((1+redshift)^3)+0.7*((1+redshift)^2)+1))^(-1)
}
# for all values from column "z" I want to
我基本上想在Redshift中做以下事情,但由于Redshift不支持过程语句,我不确定如何实现我的目标:
IF EXISTS (select username,accountnumber from table where username={1})
THEN
IF {0} NOT IN accountnumber
update table set accountnumber =
accountnumber+=',{0}' where username='{1}'
END IF
ELSE
insert
因此,在MSSQL中,我可以执行即席SQL语句。
if exists (select 1 from sys.databases where [name] = 'Admin')
begin
print('do something ');
create schema lala;
create table #temp(dummy nvarchar(128));
insert into #temp(dummy) values('lala');
end
在Redshift中,除了正式的功能或过程之外,我无法做任何类似的事情。
我试图通过EC2中的cli从快照创建集群:
aws redshift restore-from-cluster-snapshot --cluster-identifier <myNewCluster> --snapshot-identifier snapshotID
我发现了一个错误:
An error occurred (UnauthorizedOperation) when calling the RestoreFromClusterSnapshot operation: Access Denied. Please ensure that your IAM Permissio
我在Redshift中名为mm的列上得到以下错误: select sum(mm) mm from foo;
ERROR: syntax error at or near "mm"
LINE 1: select sum(mm) mm from foo;
^ 如果将列的别名设置为其他名称(如select sum(mm) mm2 ... ),则不会出现相同的错误 mm有什么特别之处?它不在保留字列表中。
我目前正在尝试将我创建的多个临时表中的数据插入到Redshift表中。
Insert into schema.table1 (
with a as (
select t1.country_code, t1.country_name
from t1
)
select * from a
);
我在这条语句上得到的错误如下: Amazon Invalid operation:位于或接近"as";的语法错误。为了能够从临时表中插入数据,我需要做哪些更改?
众所周知,RedShift有一组相关子查询,它可以解除这些子查询的关联,从而使查询运行得更快。
为什么Redshift不能解除公共DOES NOT EXIST子查询的关联?例如,下面的查询实质上是:
SELECT ProductID,
ProductName
FROM Products p
WHERE NOT EXISTS (SELECT *
FROM [Order Details] od
WHERE p.ProductId = od.ProductId)
有人能解释一下为什么Redshif
我知道用Azure可以组合一个IF x THEN UPDATE ELSE INSERT,用Redshift SQL可以做同样的事情吗?
我目前正在尝试这段代码:
SELECT source,
CASE WHEN (SELECT 1 FROM state WHERE name =
'out_dev' AND environment = 'dev') > 0
THEN
(UPDATE state SET source='new source')
ELSE (
INSERT state (source, name, load_time, has
我在sql server上有以下SQL
declare @groupName varchar(50)
select @groupName=groupIdentifier from tab1 where col3 ='ABC'
if @groupName is not NULL
select @groupName
return
select @groupName=col2 from tab2 where col1= 'BCD'
if @groupName is not NULL
select @groupName
re
我将开始研究RedShift,所以我已经开始进行简单的查询了。但是有一个简单的问题,那就是它不工作。
这就是出现的错误,我不明白为什么。
错误: 42P10: FROM中的子查询可能没有引用相同查询级别的其他关系查询:
UPDATE table1
SET income = nvl ( y.income, 0 )
FROM (
SELECT date , income
FROM table2
where date=201810
GROUP BY date)
我正在使用redshift-sqlalchemy包将SQLAlchemy连接到Redshift。在Redshift中,我有一个简单的"companies“表:
create table if not exists companies (
id bigint identity primary key,
name varchar(1024) not null
);
在SQLAlchemy端,我将其映射为:
Base = declarative_base()
class Company(Base):
__tablename__ = 'companies'
我在Redshift中有一个包含以下列的表
id int,state varchar(50), name varchar(50),tsa varchar(50),countrycode varchar(50),country_id int
当我把它插入AWS Lambda的Redshift中时,它期待varchar像这样被转义-
cursor.execute('insert into test values (81,\'tn\',\'ic\',\'ICS\',\'US\',9)'))
我正在以下列方式从Redshi
我无法在Redshift中转换多字节字符。
create table temp2 (city varchar);
insert into temp2 values('г. красноярск'); // lower value
insert into temp2 values('Г. Красноярск'); //upper value
select * from temp2 where city ilike 'Г. Красноярск'
city
-------------
Г. Красноярск
我