首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

解析SQL语句中Replace INTO与INSERT INTO的不同之处--Java学习网

REPLACE的运行与INSERT很相似。只有一点例外,假如表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除。...该语句会与INSERT相同,因为没有索引被用于确定是否新行复制了其它的行。 所有列的值均取自在REPLACE语句中被指定的值。所有缺失的列被设置为各自的默认值,这和INSERT一样。...如果您使用一个例如“SET col_name = col_name + 1”的赋值,则对位于右侧的列名称的引用会被作为DEFAULT(col_name)处理。...为了能够使用REPLACE,您必须同时拥有表的INSERT和DELETE权限。 REPLACE语句会返回一个数,来指示受影响的行的数目。该数是被删除和被插入的行数的和。...如果表包含多个唯一索引,并且新行复制了在不同的唯一索引中的不同旧行的值,则有可能是一个单一行替换了多个旧行。

1.1K20

PLSQL学习笔记-常用函数

(xland) 返回字符串xland的字符长度 LENGTHb(xland) 返回字符串xland的字节长度 LTRIM(xland) 去掉字符串xland左侧的空格,并返回值...发生被0除的错误 case_not_found 在case语句中没有包含必须的where子句 no_data_found select into 语句没有返回任何数据 dup_val_on_index...试图在一个具有唯一约束的列中插入重复的值 invalid_error 发生一个算法、转换、截断、大小约束错误(sql语句中) value_error 发生一个算法、转换、截断、大小约束错误(过程性语句中...七:隐式游标属性 属性 值 select insert update delete sql%isopen false false false false sql%found...成功 成功 sql%rowcount 返回行数只为1 插入的行数 修改的行数 删除的行数

68910
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL sql_mode应该如何指定

    sql_mode是个很容易被忽视的变量,在5.6之前默认为空值,在这种设置下是可以允许一些非法操作的,比如允许一些非法数据的插入。在生产环境一般将这个值设置为严格模式。...BY中出现,那么这个SQL是不合法的 直接报错 允许 ANSI_QUOTES 启用ANSI_QUOTES 后,不能用双引号来引用字符串,因为它被解释为识别符,作用与 ` 一样 直接报错 允许 PIPES_AS_CONCAT...将||视为字符串的连接操作符而非 或 运算符- - NO_TABLE_OPTIONS 使用SHOW CREATE TABLE时不会输出MySQL特有的语法部分,如 ENGINE。...,没有在GROUP BY中出现,那么将认为这个SQL是不合法的,因为列不在GROUP BY从句中。...五、总结 sql_mode设置哪种类型需要根据业务使用场景来定: 比如insert时,超过字段长度,业务设计不允许截断插入,而是直接失败,那么就需要指定STRICT_TRANS_TABLES模式。

    2.1K30

    db2 terminate作用_db2 truncate table immediate

    01003 从列函数的参数消去 NULL 值。01004 字符串值在指定给具有较短长度的另一字符串数据类型时被截断。01005 SQLDA 中的条目数不够。01007 未授予特权。...01596 没有为基于长字符串数据类型的单值类型创建比较函数。01598 尝试激活活动的事件监视器,或尝试释放不活动的事件监视器。01599 忽略 REBIND 上的绑定选项。...01641 Datalink 类型属性限制结构化类型的使用。01642 对于最大的可能 USER 缺省值,列不足够长。...类代码22:数据异常 SQLSTATE 值 含义22001 字符数据,发生右截断;例如,更新或插入值对于列来说太长(字符串),或者日期时间值由于太小而不能赋给主机变量。...42880 CAST TO 和 CAST FROM 数据类型不兼容,或总会导致固定字符串截断。 42881 使用基于行的函数无效。 42882 特定实例名限定符与函数名限定符不相同。

    7.7K20

    SQL排序(一)

    可以通过对查询子句中的字段名应用排序规则函数来指定排序规则。 在指定排序函数时必须使用%前缀。...这种转换还导致SQL将SQL空字符串(")值和任何只包含空格(空格、制表符等)的值作为单个空格字符进行整理。 SQLUPPER支持可选的maxlen整数值。...注意,SQLUPPER转换与SQL函数UPPER的结果不同。TRUNCATE —增强字符串数据的区分大小写,并且(与EXACT不同)允许指定截断该值的长度。...当索引比下标支持的数据长的精确数据时,此功能很有用。它采用%TRUNCATE(string,n)形式的正整数参数将字符串截断为前n个字符,从而改善了对长字符串的索引和排序。...如果指定,maxlen会将字符串的分析截断为前n个字符。在对长字符串进行索引和排序时,可以使用它来提高性能。可以在查询中使用maxlen进行排序,分组或返回截断的字符串值。

    1.5K20

    MySQL的sql_mode解析与设置和MySQLdb._exceptions.OperationalError: (1055, “Expression

    BY从句中 STRICT_TRANS_TABLES: 在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做任何限制 NO_ZERO_IN_DATE: 在严格模式...PIPES_AS_CONCAT 将"||"视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样是,也和字符串的拼接函数Concat想类似 ANSI_QUOTES 启用ANSI_QUOTES...后,不能用双引号来引用字符串,因为它被解释为识别符 据说是MySQL5.0以上版本支持三种sql_mode模式:ANSI、TRADITIONAL和STRICT_TRANS_TABLES。...1、ANSI模式:宽松模式,更改语法和行为,使其更符合标准SQL。对插入数据进行校验,如果不符合定义类型或长度,对数据类型调整或截断保存,报warning警告。...用于事物时,会进行事物的回滚。 注释:一旦发现错误立即放弃INSERT/UPDATE。

    1.2K10

    分析函数 ExecuteSQL

    大家好,又见面了,我是你们的朋友全栈君。 在学生管理系统中,执行sql语句时,我们用到这个函数,当时有几点不明,现在说说我的理解。...Split(SQL) ‘Split返回一个下标从0开始的一维数组,包含指定数目的子字符串。”...Select”+”*”+”from”+”user_Info”+”where”+”…” ‘函数执行时,首先判断SQL语句中包含的内容: Select和insert,delete,update分开,原因:...select时,ExecuteSQL函数返回一个与函数同名的RecordSet,所有满足条件的记录包含在对象中; insert,delete,update时,不返回记录集对象RecordSet。...If InStr(“insert,delete,update”, UCase$(sTokens(0))) Then ‘sTokens(0)——由Split产生的第一个数组元素,即select/insert

    31230

    ORDER BY(二)

    下面两个示例展示了在ORDER BY子句中指定排序列的不同方法。...因为IRIS列表是一个以格式化字符开始的编码字符串,所以本例使用$LISTTOSTRING来按实际字段数据值排序,而不是按列表元素编码: SELECT Name,FavoriteColors FROM...Age=93 today=66035 缓存查询 ORDER BY子句中使用的每个字面值都会生成一个不同的缓存查询。 不对ORDER BY字面值执行字面值替换。...ORDER BY和长全局引用 ORDER BY ordering-item的值不应该超过(大约)400到500个字符,这取决于ordering-item的数量和其他因素。...这是因为全局引用的最大编码长度有限制,这是一个固定的 IRIS系统限制。 为了防止这个问题,在作为ORDER BY子句基础的字段的排序规则设置中使用截断长度。

    69930

    解释SQL查询计划(一)

    指定的筛选器字符串筛选SQL语句列表中的所有数据,最有用的是模式或模式。 表名、例程位置或SQL语句文本中找到的子字符串。...SQL语句文本:规范化格式的SQL语句文本(截断为128个字符),可能与以下SQL语句文本中指定的命令文本不同。 计划状态 计划状态列出以下内容之一: 解冻Unfrozen:未冻结,可冻结。...尽管此SQL命令不会生成查询计划,但它在SQL语句中的列表仍然很有用,因为它允许快速定位针对该表的所有SQL操作。...SQL语句文本在1024个字符之后被截断。 要查看完整的SQL语句文本,请显示SQL语句详细信息。 一个SQL命令可能会产生多个SQL语句。...数据管理(DML)SQL语句 创建SQL语句的数据管理语言(DML)命令包括:INSERT、UPDATE、INSERT或UPDATE、DELETE、TRUNCATE TABLE、SELECT和OPEN

    2.9K20

    SQL定义和使用视图

    有两种类型的WITH CHECK选项: WITH LOCAL CHECK选项意味着只检查INSERT或UPDATE语句中指定的视图的WHERE子句。...与级联检查选项(和级联检查选项)意味着视图的WHERE子句中指定的INSERT或UPDATE语句以及所有视图检查基于这一观点,无论外表或与当地检查没有其他选项在这些视图定义条款。...如果在INSERT或UPDATE语句中指定了%NOCHECK选项,则不检查WITH CHECK选项的有效性。...当从Management Portal SQL执行查询界面发出时,此字符串的显示仅限于前100个字符,其中不包括空格和换行符,并且(如有必要)附加表示省略号的省略号(...)。...否则,发出此查询将为每个视图返回最多1048576个字符的字符串,在视图字段列表和查询文本之间有一个换行符,并保留了视图查询表达式中指定的空格,并(如有必要)附加了省略号(...)表示内容被截断。

    1.8K10

    MySQL见闻录 - 入门之旅(四)

    3、特殊字符串处理 SQL标准对于字符串的两端规定为单引号。 MySQL可以识别出字符串中的转义序列,这就很尴尬: ? 那怎么办? 首先,这表里的转义序列是区分大小写的。...如果需要在插人或更新数据时进行更严格的检查,可以启用以下两种SQL模式之- : mysql> SET sql_ mode = ' STRICT_ALL_TABLES'; mysql> SET sql...在MySQL语句中,也有这样的分隔符: 复合语句由begin开头,由end结尾。...这样-来, mysql程序就不会把分号解释为语句终止符了,它将把整个对象定义作为一条语 句传递给服务器。在定义完存储程序之后,可以把mysql程序的语句终止符重新定义为分号。...在触发器的定义里需要表明它将由哪种语句(INSERT、UPDATE或DELETE)触发,是在数据行被修改之前还是之后被触发。

    1K10
    领券