create-table相关内容

仅当表不存在时才在 SQLite 中创建表

我只想在 SQLite 数据库中创建一个不存在的表.有没有办法做到这一点?如果表存在,我不想删除它,只有在它不存在时才创建它. 解决方案 来自 http://www.sqlite.org/lang_createtable.html: CREATE TABLE IF NOT EXISTS some_table (id INTEGER PRIMARY KEY AUTOINCREMENT, . ..
发布时间:2021-12-08 18:02:43 数据库

PostgreSQL 如果不存在则创建表

在 MySQL 脚本中,您可以编写: 如果不存在则创建表 foo ...; ...其他东西... 然后您可以多次运行脚本而无需重新创建表. 你如何在 PostgreSQL 中做到这一点? 解决方案 此功能已在 Postgres 9.1 中实现: 如果不存在则创建表 myschema.mytable (i integer); 对于旧版本,这里有一个功能可以解决这个问题: ..
发布时间:2021-12-05 21:40:09 其他开发

如果存在则更改表或如果不存在则创建

我需要运行一个安装程序,它也可以是一个更新程序.安装程序需要能够最终拥有 mysql 数据库的特定方案/结构,无论某些表是否存在,是否遗漏了几列,或者不需要更改,因为它们的结构是最新的. 如何将 ALTER 和 CREATE 巧妙结合起来? 我在想一定有类似“添加...如果...重复"之类的东西 假设我有表 A.在一个客户端中,该表有一个列 -A1,另一个客户端有相同的表,但有 ..
发布时间:2021-11-27 08:39:06 数据库

字段“id"没有默认值?

我是这个 SQL 的新手;我在更大的程序中看到过类似的问题,目前我无法理解.我正在为我的主页中使用的纸牌游戏制作一个数据库. 我在 Windows 上使用 MySQL Workbench.我得到的错误是: 错误代码:1364.字段“id"没有默认值 CREATE TABLE card_games(nafnleiks varchar(50),leiklysing varchar(300 ..
发布时间:2021-11-20 22:49:36 数据库

Mysql:建表时将DATETIME的格式设置为'DD-MM-YYYY HH:MM:SS'

在谷歌搜索后,我找不到一种方法来创建一个带有 DATETIME 列的新表,默认格式设置为 'DD-MM-YYYY HH:MM:SS' 我看到一个教程,它是在 phpmyadmin 中完成的,所以我怀疑我可以通过命令行使用 mysql 并在使用 创建新表时实现相同的功能 创建表() 提前致谢 解决方案 “MySQL 以 'YYYY-MM-DD HH:MM:SS' 格式检索并显示 ..
发布时间:2021-11-20 21:44:53 数据库

在没有单独的 CREATE TABLE 的 SELECT 语句中创建临时表

是否可以在不使用 create table 语句并指定每个列类型的情况下从 select 语句创建临时(仅限会话)表?我知道派生表能够做到这一点,但那些是超临时的(仅限语句),我想重用. 如果我不必编写创建表命令并保持列列表和类型列表匹配,这将节省时间. 解决方案 CREATE TEMPORARY TABLE IF NOT EXISTS table2 AS (SELECT * FRO ..
发布时间:2021-11-20 21:21:52 数据库

MySQL INSERT INTO 语句生成“错误代码:1136.列计数与行的值计数不匹配";

我正在尝试从旧表创建一个新表,以便删除一些重复项并实现复合主键.我已经使用 LIKE 从旧表创建了新表,因此列应该是相同的. 为什么这不起作用? INSERT INTO PricesNEWtest (Global_MarketCap,pkey)VALUES ((SELECT max(Global_MarketCap), pkeyFROM Prices GROUP BY pkey)); 错 ..
发布时间:2021-08-23 18:44:42 数据库

SQL表不一致增长

有一个SQL表与其内部数据相比增长迅速且不一致.简而言之,此表中有一个Windows服务备份.txt文件的内容,文件的权重从1KB到45KB左右.因此nvarchar(max)列用于存储这些文本文件的内容. 在此表上运行sp_spaceused命令时,结果如下: 名称行保留的数据index_size未使用文件20402 814872 KB 813416 KB 1048 KB 408 KB ..
发布时间:2021-04-24 21:22:54 其他开发

SQL面试:防止日期范围重叠

说有一个约会表,用于列出具有startDatetime和endDatetime的经理(或HR)列表,然后如何仔细设计该表,以使其不接受同一经理重复的下一个条目(如果他/她拥有)与其他人约会. 如果经理:A从 2016-01-01 11:00到2016-01-01 14:00 与 Employee-1 进行了约会那么如果 Employee-2 (或其他雇员)尝试从 20-16-01-01 13 ..
发布时间:2021-04-24 21:22:49 其他开发

CREATE TABLE和CREATE ANY TABLE特权之间的区别

我不明白这两种特权之间的区别. 我找到了这两种解释,但这对我没有帮助. CREATE TABLE->使用户能够创建该用户拥有的表.创建任何表->使用户能够创建数据库中任何用户所拥有的表. 如果用户创建了一个表,它将由创建它的用户所有吗?我不明白. 解决方案 CREATE TABLE 特权使您可以在自己的模式中创建表.因此用户 scott 可以做到: 创建表scott.myt ..
发布时间:2021-04-24 21:22:45 数据库

如何处理列值中的定界符?

我试图将CSV文件数据加载到我的Hive表中,但是它在一列的值中具有delimiter(,),因此Hive将其作为定界符并将其加载到新列中.我尝试使用转义序列\,但是我也\(它无法正常工作,并且总是在,. 之后的新列中加载数据. 我的CSV文件. id,名称,desc,per1,roll,age226,a1,"\"双杠,"item1和item2","0.0,10,25"227,a2," ..
发布时间:2021-04-24 21:22:42 其他开发

MySQL:TIMESTAMP的无效默认值

我得到了错误 第5459行的 ERROR 1067(42000):'start_time'的默认值无效 运行以下查询时 DROP TABLE如果存在`slow_log`;如果不存在`slow_log`(start_time时间戳(6)NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,`user_host`中文 ..
发布时间:2021-04-24 21:22:37 数据库

创建表时出现MySQL语法错误

我在docker容器中有一个MySQL数据库.入口点执行创建数据库的脚本和创建表的脚本. 除一张桌子外,其他所有东西都可以正常工作. 使用db;...创建其他表创建表媒体元数据(id bigint不为null的主键,title VARCHAR不为NULL,艺术家VARCHAR不能为NULL,专辑VARCHAR,releaseYear bigint,mediaId bigint NOT NU ..
发布时间:2021-04-24 21:22:34 数据库

如何在没有触发器的情况下在mysql上生成/自动递增guid?

我正在重新访问数据库,并发现我有一些类型为INT的主键. 这还不够独特,所以我想我会有个向导.我来自Microsoft sql背景,在ssms中可以选择类型为"uniqeidentifier"并自动递增. 但是在mysql中,我发现必须为要插入的表创建在插入时执行的触发器为其生成指南ID.示例: 表格: CREATE TABLE`tbl_test`(`GUID` char(4 ..
发布时间:2021-04-24 21:22:31 数据库

Hive外部表最佳分区大小

外部表分区的最佳大小是多少?我打算按年/月/日对表进行分区,每天将获得约2GB的数据. 解决方案 配置单元分区定义将存储在metastore中,因此太多的分区将占用metastore中的大量空间. 分区将作为目录存储在HDFS中,因此许多分区键将生成多级目录,这会使它们的扫描速度变慢. 您的查询将作为MapReduce作业执行,因此创建太小的分区是没有用的. 要视情况而定 ..

POSTGRES-使用ON CONFLICT DO NOTHING防止序列递增

重复这个问题 说我有以下表格内容.我想要表中的唯一名称,所以没有重复的名称.插入事物的过程无需检查是否已存在具有此名称的事物. 创建表的东西(id小写主键,名称varchar UNIQUE); 当我插入这样的值时,它起作用.如果“办公桌"已经在东西中,则不会插入. INSERT INTO事物(名称)VALUES(“办公桌")冲突时,请勿执行任何操作; 唯一的问题是冲突.“什么都 ..
发布时间:2021-04-12 20:25:12 其他开发