Redshift 入门
Jason Myers
Principal Engineer
SELECT name,
priority,
FROM data_log
-- SYSDATE = 2024-02-07 00:17:24.259227
WHERE intake_ts < SYSDATE;
SELECT name,
data_size,
FROM data_details
-- SYSDATE = 2024-02-07 00:18:04.830527
WHERE current_intake_date < SYSDATE;
data_intake
| name | priority |
|---|---|
| idaho_monitoring_locations | 1 |
| idaho_samples | 2 |
| idaho_site_id | 3 |
UPDATE data_intake
SET priority=1
WHERE name='idaho_samples';
UPDATE data_intake
SET priority=2
WHERE name='idaho_monitoring_locations';
data_intake
| name | priority |
|---|---|
| idaho_monitoring_locations | 1 |
| idaho_samples | 1 |
| idaho_site_id | 3 |
默认执行行为
事务会影响某些函数
SYSDATE, TIMESTAMP, CURRENT_DATE有些函数绕过事务
GETDATE, TIMEOFDAYBEGIN; 或 START TRANSACTION; 开始END; 或 COMMIT; 结束BEGIN;query1; query2;END;
-- 开启事务
BEGIN;
SELECT name,
priority,
FROM data_log
-- SYSDATE = 2024-02-07 00:17:24.259227
WHERE intake_ts < SYSDATE;
SELECT name,
data_size,
FROM data_details
-- SYSDATE = 2024-02-07 00:17:24.259227
WHERE current_intake_date < SYSDATE;
-- 结束事务
END;
-- 开启事务
BEGIN;
SELECT name,
priority,
FROM data_intake
-- GETDATE = 2024-02-07 00:17:24.259227
WHERE data_intake_ts < GETDATE();
SELECT name,
data_size,
FROM data_details
-- GETDATE = 2024-02-07 00:18:44.830527
WHERE current_intake_date < GETDATE();
-- 结束事务
END;
Redshift 入门