当前位置: 首页 > 面试题库 >

MySQL:ALTER IGNORE TABLE ADD UNIQUE,什么会被截断?

钦耀
2023-03-14
问题内容

我有一个包含4列的表格:ID,类型,所有者,描述。ID是AUTO_INCREMENT PRIMARY KEY,现在我要:

ALTER IGNORE TABLE `my_table`
    ADD UNIQUE (`type`, `owner`);

当然,我很少有类型=’Apple’和owner =’Apple CO’的记录。因此,我的问题是,哪条记录将是保留在该ALTER
TABLE之后的特殊记录,ID最小的记录或最新插入的最大记录?


问题答案:

第一条记录将保留,其余的将被删除§§:

IGNORE是标准SQL的MySQL扩展。它控制ALTER
TABLE的工作方式,如果新表中的唯一键上有重复项,或者在启用严格模式时出现警告。如果IGNORE未指定,则复制副本将中止并在发生重复键错误时回滚。如果IGNORE
指定,则仅 第一 行使用唯一键重复的行,其他冲突的行则 删除 。不正确的值将被截断为最接近的匹配可接受值

我猜这里的“第一个”是指ID最小的那个(假设ID是主键)。

另请注意:

从MySQL 5.7.4开始,IGNOREfor子句ALTER TABLE删除 ,其使用产生 error



 类似资料:
  • 问题内容: 我有一个长度为10 的类型的列: 在此列中,我插入了一个太长的数字: 当我查看表格中的内容时,数字现在是: 2147483647 变成了为什么,为什么? 为什么没有被截断? 这种转换背后的机制是什么,可以使用某些公式来计算结果数吗? 我不是在寻找解决方案。我只想了解具体数字。 问题答案: http://dev.mysql.com/doc/refman/5.0/en/integer- t

  • 使用bytepal拦截类Foo,有两种方法A、B 在A方法中,B方法被调用。如果我们在intercetpor类栏中同时删除A和B到C方法,它们在第一行调用 会发生什么?这些方法的执行顺序是什么?

  • 我一直在监控我的应用程序错误,我看到下面的错误太多次了 错误:14077410:SSL例程:SSL23\u GET\u SERVER\u HELLO:sslv3警报握手失败(外部/openssl/SSL/s23\u clnt.c:741 0xaa48cd5c:0x00000000)-javax。网ssl。SSLHandshakeException:javax。网ssl。SSLProtocolExc

  • 问题内容: 我正在尝试从服务器获取JSON响应,并且当字符串长度达到约5525个字符时,响应字符串似乎总是被截断。 我还通过使用HttpEntity并读取响应流进行了尝试。但这也会在大约该长度处截断字符串。 请让我知道如何处理此问题。创建此文章时,我将其作为参考。 http://senior.ceng.metu.edu.tr/2009/praeda/2009/01/11/a-simple-rest

  • 问题内容: 我正在使用具有“很高”的xlabel的位置绘制数据集(这是在TeX中渲染的公式,其中包含一个分数,因此其高度等于几行文本)。 无论如何,当我绘制数字时,公式的底部总是被切除。更改图形大小似乎无济于事,而且我还无法弄清楚如何将x轴“向上”移动以为xlabel腾出空间。诸如此类的东西将是一个合理的临时解决方案,但最好的办法是使matplotlib自动识别标签被切断并相应调整大小。 这是我的

  • 我尝试在Jasper报告中格式化日期,它适用于Windows但不适用于Linux。对于Linux,结果文本被截断。 JRXML: Maven依赖关系: 我读到: 用jasperreport生成的PDF在Linux上显示不佳,但在Mac上显示良好,可能与os有关吗? http://community.jaspersoft.com/questions/527138/pdf-text-truncated