首页 > 数据库 >--Postgresql 建表疏忽导致的数据无法插入,发现奇怪的问题

--Postgresql 建表疏忽导致的数据无法插入,发现奇怪的问题

时间:2023-06-19 17:08:02浏览次数:45  
标签:Postgresql -- 数据库 数据类型 问题 test 建表 schema


--Postgresql   建表疏忽导致的数据无法插入,发现奇怪的问题_python

此前在其他的数据库并未注意到这点,POSTGRESQL 建立字符字段的时候,可以大量使用TEXT的形式来存储字符。

建表的时候粗心在建立表后,插入数据一直报错

--Postgresql   建表疏忽导致的数据无法插入,发现奇怪的问题_数据库_02

当时没有注意,认为是符号的错误导致的写入数据的问题,修改了半天insert的语句,报错也改变了

--Postgresql   建表疏忽导致的数据无法插入,发现奇怪的问题_mysql_03

最终发现不是insert语句的问题而是建表的时候产生的问题。版本(PGV12.2)

--Postgresql   建表疏忽导致的数据无法插入,发现奇怪的问题_sql_04

注意建表的时候将text 写成了test, 导致建表后,字段的类型不对。导致后面输入数据错误。

alter table laptop ALTER COLUMN type SET DATA TYPE  text;

--Postgresql   建表疏忽导致的数据无法插入,发现奇怪的问题_python_05

在进行插入数据插入成功, 这留下一个问题,为什么写错的数据类型还能建立表。

尝试将其他的类型写错了,看看能不能建立表

--Postgresql   建表疏忽导致的数据无法插入,发现奇怪的问题_python_06

再次创建一个表,尝试将类型写错,也是通过的

--Postgresql   建表疏忽导致的数据无法插入,发现奇怪的问题_数据库_07

首先要确认的是这里并没有组合类型的设置和建立,而发现此次问题的也是偶然的。

随即查找到底什么原因导致这个问题,或可能的原因是什么

随即建立新的数据库,模拟问题没有成功

--Postgresql   建表疏忽导致的数据无法插入,发现奇怪的问题_sql_08

--Postgresql   建表疏忽导致的数据无法插入,发现奇怪的问题_sql_09

再次创建数据表,发现没有成功的模拟出问题。

随即对原数据库进行分析

1  原有的数据库的默认的schema  是 test

2  原有的数据库加装了citext 插件

随即再次模拟情况失败

--Postgresql   建表疏忽导致的数据无法插入,发现奇怪的问题_python_10

尝试创建新的数据库,并且指定默认的schema为test ,加载 citext后再次创建错误的表,失败。

--Postgresql   建表疏忽导致的数据无法插入,发现奇怪的问题_java_11

目前不能确认是否还能模拟出错误,或者没有找到根本原因,但在postgres 的数据库中的test的schema 中,目前是可以创建表并且用不存在的数据类型,当然这个数据类型只能叫test。 

--Postgresql   建表疏忽导致的数据无法插入,发现奇怪的问题_java_12

标签:Postgresql,--,数据库,数据类型,问题,test,建表,schema
From: https://blog.51cto.com/u_14150796/6515954

相关文章

  • MONGODB 复制集 DOWN DOWN 机了, 5种情况与系统恢复
    最近TEAM里面的每个DB都在做高可用失效后的应急方案和处理的文档,要写这个东西我和MONGODB的DBA主要要做的有以下内容1 环境的准备三台MOGNODB4.2 社区版本2  安装成为复制集3  制定测试计划     测试计划主要从以下几个方面考虑   1  从库DOWN机,对应......
  • Mongodb 缓存页结构, 为什么我那么快 (1)
    MONGODB数据库写入和并发的速度,绝非是传统数据库可以比拟的,但到底为什么插入的速度这么快,和他的数据库引擎wiredTiger有关,那么就看看MONGODBwiredTiger的设计。MONGODB的数据库引擎WiredTiger, 使用PAGE页的方式,来存储数据,但是磁盘和内存的页面的结构是不一致的,内存的页面......
  • Rockchip rk3588 U-Boot详解 (三)
    Rockchiprk3588U-Boot详解(三)专栏总目录1.1Environment-VariablesENV(Environment-Variables)是U-Boot支持的一种全局数据管理和传递方式,原理是构建一张HASH映射表,把用户的数据以"键值-数据"作为表项进行管理。EVN通常用于定义平台配置参数:固件加载地址、网络配置(ipaddr、serve......
  • 6种 数据库隔离级别中的SNAPSHOT隔离级别
    我估计被吸引到这个文字中的是6种,大部分人是想进来看看不是4种吗? 实际上之前的一段时间,我的认知也是4种隔离级别,这是通过我们的ANSISQL表中中定义的isolationlevel。在ANSI/ISOSQL-92定义了四种隔离级别,RU,RC,RR, Serializable,这四种,当然常用的RC,RR,解决了脏读......
  • SQL SERVER Alway-on 灾难恢复方案 1 2 3
    SQLSERVER 这个数据库估计快被人遗忘了,但实际上很多IT力量薄弱的公司的首选的数据库就是SQLSERVER,大部分人认为他简单,好上手,并且问题少,SQLSERVER本身的高可用方式主要就是Always-on.一般Always-on是三台机器。下面就针对多种情况中的DOWN机后,数据库是否可以恢复正常工......
  • 数据库可以影响整体软件的架构设计,-- 那是当然!
    数据库DBA在整体软件的成型的过程中大部分的单位都将这个职位定位成一个运维的职位。 当然既定的现实存在即合理,这也是无法辩驳的,但实际上DBA到底应该不应该就是也给运维的职位,都2021年了,咱们的开始论论了。我们先罗列一下大部分人认为的DBA应该做什么1  安装数据库,安装数......
  • MYSQL client 有了更多的新功能
    MYSQL8 中的client中的新功能,方便在MYSQL的client中操作可以不用在切换到LINUX平台下操作某些LINUX的命令。使用的场景主要在于在MYSQL中操作数据库的命令的适合,同时还想在监控一下当前的性能,之前可能会开两个窗口,在MYSQL8后,这样的事情可能会少不少。到底我们能做什么1 ......
  • POSTGRESQL UPDATE 如何提高I/O 能力
    POSTGRESQL的数据扫描,其实和其他的数据库也无差,无非就是数据块的扫描以及索引的扫描,这里POSTGRESQL数据扫描也叫TUPLESCAN。在POSTGRESQL8.3版本后再HEAP表的修改中,有一个概念叫HOT,通过新的概念提高了堆表的性能,减少了I/O。早起的POSTGRESQL更新的方式是修改索引中的数......
  • POSTGRESQL RC事务处理与ORACLE MYSQL 的区别 --对PGFANS 群里面的问题的分解
    有一个同学在PGFANS群里面提了一个问题,在他实验的某个操作中发现PG和ORACLE使用同样的操作流程后,得到的结果不一致。所以下面准备验证并找到一些可以解释的原因。测试库名test测试表test测试数据id  age 1   202   223   24首先我们要确认 PG的隔离 RC......
  • 数智人力:如何通过搭建全球人才供应链帮助企业海外扩张?
    在不确定性、不连续性的复杂商业环境和数字化浪潮的推动下,中国企业正在寻求全球化经营的新模式。过去依赖单一能力(如规模市场、低成本产品、渠道拓展等)的发展模式已经不再适用,取而代之的是战略能力、业务能力、组织能力的全球化经营模式。为了支撑进一步的飞跃,中国企业需要不断领先......