`

如果没有就Insert,如果有就根据唯一索引更新

    博客分类:
  • SQL
阅读更多

1.建立表结构
CREATE TABLE Test_Table
(
    ID BIGINT NOT NULL AUTO_INCREMENT,
    user_name VARCHAR (15),
    password VARCHAR (5),
    age INTEGER,
    sex CHAR(1),
    PRIMARY KEY (ID)
) ENGINE=InnoDB DEFAULT CHARSET=UTF8 COLLATE=utf8_bin
;
2.建立唯一索引
ALTER TABLE Test_Table
ADD UNIQUE INDEX Test_Table_In(user_name ASC, CONTRACT_COUNTRY ASC);

3.sql语句
INSERT INTO Test_Table(id, user_name, password, age, sex) VALUES(:user_name, :password, :age, :sex)  ON DUPLICATE KEY UPDATE password=:password, age=:age, sex=:sex

4.实例
   (1)Lily ,19880321,21,female
  数据库中会存在一条id=1的记录
   (2)Lily,19880321,22,female
        Jim,19870212,23,male
  数据库中会存在两条记录,Lily的age更新成22,多了一条id=2 的记录
分享到:
评论

相关推荐

    Mybatis Plus 自定义批量插入或批量更新(根据唯一索引)

    然而,当涉及到唯一索引时,简单的批量操作可能无法满足需求,因为可能会有重复的数据导致冲突。 在 Mybatis Plus 中自定义批量插入,我们可以通过继承 `AbstractService` 类并覆写 `batchInsert()` 方法来实现。在...

    MySQL唯一索引重复插入数据解决方案总结.docx

    当我们创建好唯一索引之后,如果给索引列插入了重复值之后,MySQL 会报一个 Duplicate entry 的错误信息。例如,insert into userinfo(nickname, openid) VALUE (ENCRYPT(RAND() * 1000), 'jf/IxWYA060PA'); 会报错 ...

    mysql如何实现 如果存在就update更新,不存在再insert插入.zip

    在MySQL数据库中,如果你需要执行一个操作,即当数据存在时进行更新,如果不存在则进行插入,你可以...在实际应用中,应确保正确设置唯一索引,并根据需要调整`ON DUPLICATE KEY UPDATE`部分,以更新你希望修改的列。

    MySQL的主键与唯一索引约束

    当尝试插入或更新的数据违反了主键或唯一索引约束时,系统会根据所使用的存储引擎采取不同的处理方式。对于支持事务的InnoDB存储引擎,如果违反约束,MySQL会自动回滚整个操作,以保持数据的一致性。例如,创建一个...

    MySQL建立唯一索引实现插入重复自动更新

    一旦为特定列创建了唯一索引,就可以使用`INSERT INTO...ON DUPLICATE KEY UPDATE`语句。以下是一个示例: ```sql INSERT INTO your_table (id, user_id, token) VALUES (NULL, '2479031', '232') ON DUPLICATE ...

    视图、索引及数据更新

    分为唯一索引和非唯一索引,唯一索引不允许有重复的键值。创建索引可以显著提高SELECT查询的速度,但会降低INSERT, UPDATE, DELETE操作的速度,因为这些操作需要维护索引。例如,为`Students`表的`Sname`字段创建...

    解析SQL语句中Replace INTO与INSERT INTO的不同之处

    在有多个唯一索引的表中,可能会发生一个新行替换多行的情况。 在编程接口(如 C API)中,你可以使用 `mysql_affected_rows()` 函数来获取受影响的行数,以判断 `REPLACE INTO` 是否只添加了一行还是同时替换了...

    mysql数据库Insert语句后面加ON DUPLICATE KEY UPDATE,保证唯一性1

    这个语句主要用于处理唯一索引(包括主键)的情况,当尝试插入的数据与现有数据冲突时,会触发更新已存在的行而不是抛出错误。 首先,我们来理解一下`ON DUPLICATE KEY UPDATE`的基本结构。当你在`INSERT`语句后...

    Sql Server 数据库视图 索引等

    - **唯一索引:** 保证索引列中的值是唯一的。 - **聚集索引:** 数据按照索引顺序存储,每个表最多只能有一个聚集索引。 - **非聚集索引:** 存储索引项的物理顺序与表中记录的物理顺序无关。 **创建索引示例:...

    Oracle 创建索引的基本规则

    - **唯一性**: 如果某一列的值都是唯一的,则可以创建UNIQUE索引。 - **更新频率低的列**: 对于经常被修改的列,创建索引可能会导致性能下降,因为每次更新都需要维护索引。 - **高并发场景**: 在高并发环境中,频繁...

    insert 和replace的区别及用法

    但是,需要注意的是,REPLACE 语句只能用于拥有唯一索引的字段上,如果在没有唯一索引的字段上使用 REPLACE 语句将会抛出错误。 INSERT 语句是 MySQL 中最基本的数据插入语句,而 REPLACE 语句是 MySQL 中的一种...

    索引的正确使用

    3. **唯一索引**:确保索引列的值具有唯一性,不允许有重复的数据。 4. **全文索引**:用于支持全文搜索,例如搜索引擎使用的索引。 5. **函数索引**(Function-Based Index):基于表达式或函数的结果创建的索引,...

    数据库索引

    - 唯一索引不允许同一表中有两行具有相同的索引值。 ```sql CREATE UNIQUE INDEX IX_UNIQUE_TNAME ON TEST (TNAME); ``` 3. **创建非聚簇索引**: ```sql IF EXISTS (SELECT * FROM SYSINDEXES WHERE name =...

    goldengate同步无主键无唯一索引表的问题以及解决方案-更新关于附加日志.docx

    - 在进行数据同步时,如果源表没有主键或唯一索引,则可能会遇到同步困难。 - 特别是在需要更新完全相同记录的情况下,由于缺少明确的标识符,Goldengate 可能无法正确识别需要更新的行。 - **解决方案**: - 为...

    SQL Server和Oracle中索引介绍

    Oracle也支持唯一索引和非唯一索引,以及索引组织表(Index-Organized Table, IOT),这是一种特殊的聚集索引形式。在设计索引时,需要考虑数据库的特定需求,如更新频率、查询模式和数据量,以实现最佳的性能平衡。...

    mysql索引(一篇就够).pdf

    然而,创建和维护索引也会带来一定的成本,例如降低INSERT、UPDATE和DELETE操作的效率,因为每次数据更改都需要更新索引。 在MySQL中,根据官网文档,InnoDB存储引擎主要支持B树类型的索引。InnoDB表的索引类型包括...

    oracle 视图、索引(自用)

    5. 唯一索引:确保索引列中的每个值都是唯一的,有助于保证数据的唯一性。 6. 复合索引:包含多个列的索引,适用于多个列组合的查询。 7. 分区索引:将大表分成较小的、更易管理的部分,每个部分都有自己的索引,...

    关于索引概念\特点\优点\缺点\分类\使用

    3. **唯一索引(Unique Index)**:这种类型的索引用于确保索引列中的值是唯一的,可以是聚集的也可以是非聚集的。 4. **复合索引(Composite Index)**:也称为多列索引或多字段索引,它可以基于多个列构建,以提高...

    Oracle 索引练习语句程序

    通过以上示例,我们学习了Oracle数据库中索引的基本使用方法以及一些高级特性,如分区表索引、唯一索引、函数索引等。此外,还了解了如何通过实际的数据操作来测试索引的性能效果。这些知识点对于深入理解和掌握...

Global site tag (gtag.js) - Google Analytics