You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redshift下如何在数据库中创建表?遇到库已存在/schema不存在报错怎么处理

报错原因分析
  • 第一个报错:你尝试重复创建已经存在的Cricket数据库,触发了唯一性校验报错。
  • 第二个报错:注释建库语句后,你没有切换到已存在的Cricket数据库的操作上下文,部分数据库(如MySQL)会将Cricket.First_Table中的Cricket识别为schema名,当前默认操作的库下没有对应schema就会触发不存在报错。另外你提供的原始建表语句存在语法错误:多个字段定义末尾漏写逗号,即便解决库/schema的问题也会执行失败。
正确操作步骤

通用解决逻辑

  • 建库语句加上IF NOT EXISTS判断,避免重复创建报错
  • 建表前先切换到对应数据库的操作上下文,或者调整schema的创建逻辑匹配你写的表名前缀
  • 修正建表语句中漏写的逗号

MySQL环境示例代码

-- 安全创建库,不存在才执行,避免已存在报错
CREATE DATABASE IF NOT EXISTS Cricket;
-- 切换到Cricket数据库的操作上下文
USE Cricket;
-- 修正语法后的建表语句
CREATE TABLE First_Table
(
Player      varchar(30)   default  'Abhay Saini',
Runs        integer(20)   default  '-1',
Minutes     integer(10)   default  '-1',
Batted_Flag integer(10)   default  '-1',
Not_Out     integer(10)   default  '-1',
Balls       integer(10)   default  '-1',
Fours       integer(10)   default  '-1',
Sixes       integer(10)   default  '-1',
Strike_Rate integer(10)   default  '-1',
Innings     integer(10)   default  '-1',
Opposition  varchar(20)   default  '-1',
Ground      varchar(20)   default  'Panchkula',
Date        date          default  '1901-01-01',
Country     varchar(20)   default  'Vatican',
Fifties     integer(10)   default  '-1',
Hundreds    integer(10)   default  '-1'
);

PostgreSQL环境特殊说明

PostgreSQL的数据库和schema是两层独立结构,如果你要保留Cricket.First_Table的表名写法,不需要单独创建Cricket数据库,直接在当前操作的数据库下创建同名schema即可:

-- 安全创建schema
CREATE SCHEMA IF NOT EXISTS Cricket;
-- 建表,字段定义使用上面修正后的版本即可
CREATE TABLE Cricket.First_Table
(
Player      varchar(30)   default  'Abhay Saini',
Runs        integer(20)   default  '-1',
Minutes     integer(10)   default  '-1',
Batted_Flag integer(10)   default  '-1',
Not_Out     integer(10)   default  '-1',
Balls       integer(10)   default  '-1',
Fours       integer(10)   default  '-1',
Sixes       integer(10)   default  '-1',
Strike_Rate integer(10)   default  '-1',
Innings     integer(10)   default  '-1',
Opposition  varchar(20)   default  '-1',
Ground      varchar(20)   default  'Panchkula',
Date        date          default  '1901-01-01',
Country     varchar(20)   default  'Vatican',
Fifties     integer(10)   default  '-1',
Hundreds    integer(10)   default  '-1'
);

内容的提问来源于stack exchange,提问作者zenith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 15:15:00