如何强制MySQL将0作为有效的自增值

2024-04-09

长话短说,我有一个 SQL 文件,我想将其导入为skelstyle 文件,因此这将以编程方式重复完成。我可以根据需要编辑 SQL 文件,但我不想碰应用程序本身。

该应用程序使用userid = 0代表匿名用户。它在数据库中还有一个相关(空白)条目来表示该“用户”。因此,我的行skel.sql看起来像这样:

INSERT INTO `{{TABLE_PREFIX}}users` VALUES (0, '', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, 0, NULL, '', '', '', NULL);

问题在于uid is a auto_increment领域,从技术上来说,0是无效值。或者至少,如果你将其设置为 0,你基本上是在告诉 MySQL,“请将下一个 id 插入到该字段中。”

现在,我想我可以放一个INSERT然后一个UPDATE查询到我的 SQL 文件,但是有没有办法告诉 MySQL 一般而言,是的,我实际上想插入0进入这个领域?


从我得到的答案来看here https://serverfault.com/questions/42071/how-to-force-mysql-to-take-0-as-a-valid-auto-increment-value/42074#42074:

您可以使用:

SET [GLOBAL|SESSION] sql_mode='NO_AUTO_VALUE_ON_ZERO'

正如所描述的here http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_no_auto_value_on_zero,将阻止 MySQL 将 INSERT/UPDATE ID 0 解释为下一个序列 ID。此类行为将被限制为 NULL。

不过,我认为应用程序的行为非常糟糕。您必须非常小心,确保它的使用一致,特别是如果您选择稍后实施复制。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何强制MySQL将0作为有效的自增值 的相关文章

  • Google Cloud SQL 上的故障转移如何运作?

    我打算将 PHP 应用程序 从 Google Cloud Platform 外部的服务器 连接到 Google Cloud SQL 我想知道如何设计应用程序以正确地对其数据库进行故障转移 根据manual https cloud googl
  • 如何使用 MySQL 选择有特定值的 2 个连续行?

    我正在构建一个系统 该系统应该显示学生何时连续缺席两天 例如 此表包含缺勤情况 day id missed 2016 10 6 1 true 2016 10 6 2 true 2016 10 6 3 false 2016 10 7 1 tr
  • 拥有更多列或更多行会更高效吗?

    我目前正在重新设计一个可能包含大量数据的数据库 我可以选择在数据库中包含许多不同的列或使用大量行 如果我在下面做一些大纲 可能会更容易 item id user id title description content category t
  • 研究MySQL、SQLite源码了解RDBMS实现[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道实现数据库是一个很大的话题 但我想通过研究数据库系统的源代码来基本了解数据库系统的工作原理 例如
  • 在 MySQL 数据库中保持 TEXT 字段唯一的最佳方法

    我想让 TEXT 字段的值在我的 MySQL 表中唯一 经过小型研究 我发现由于性能问题 每个人都不鼓励在 TEXT 字段上使用 UNIQUE INDEX 我现在想用的是 1 创建另一个字段来包含 TEXT 值的哈希值 md5 text v
  • 奇怪的 MySQL Python mod_wsgi 无法连接到 'localhost' (49) 上的 MySQL 服务器问题

    StackOverflow上也有类似的问题 但我还没有发现完全相同的情况 这是在使用 MySQL 的 OS X Leopard 机器上 一些起始信息 MySQL Server version 5 1 30 Apache 2 2 13 Uni
  • 统计mysql中的总行数并按列分组

    所以我已经看这个有一段时间了 但我似乎无法弄清楚 我有一个具有以下格式和示例数据的 mysql 表 ID Customer Time Error Code Duration 1 Test1 00 12 00 400 120 2 Test2
  • 无法从我的 java 应用程序访问 mysql 数据库(在 AWS 实例上运行)

    我有一个在 AWS EC2 Ubuntu 实例上运行的 xampp 服务器 并且那里有一个名为 androiddb 的数据库 我可以通过在导航器中写入来访问数据库http public ip phpmyadmin http public i
  • MySQL存储过程变量作为表名连接

    我想在存储过程中执行以下查询而不准备查询 因为这给我带来了 OUT 传回参数的问题 DELIMITER CREATE PROCEDURE Test IN CID BIGINT 20 IN IDs LONGTEXT BEGIN EXECUTE
  • XP及PHP MYSQL 练级系统

    我已经查看了所有提出的问题和答案 但我似乎找不到最适合我的答案 我想做的是开发一个系统 当用户达到一定的 XP 限制时 系统会进入下一个级别 它显示了下一个 XP 之前需要多少 XP So lvl1 0 gt lvl2 256 gt lvl
  • 如何将条件聚合 mysql 转换为 laravel 查询?

    我的sql查询是这样的 SELECT a number a description MAX CASE WHEN b attribute code brand then b attribute value END as brand MAX C
  • MySQL小写自动转换

    我有多个在数据库表中写入数据的 Web 服务 我想针对特定字段自动将大写字符串转换为小写字符串 mysql 有没有执行此任务的函数 假设这是表 id name language 有时 在语言字段内 Web 服务会写入大写字符串 IT 我想直
  • 如何使用php在mysql数据库中添加照片? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我对 PH
  • ODBC 链接表中突然开始出现写入冲突消息

    我有一个 mySQL 数据库 用于跟踪我们的项目并驱动我们的网站显示其信息 为了方便更新数据库 我设置了一个使用 ODBC 连接 MySQL ODBC 5 1 来编辑数据的访问数据库 过去几个月一直运行良好 没有出现任何问题 然而 昨晚用户
  • MySQL 正在将我的时间戳值转换为 0000-00-00

    我是 PHP 新手 目前仍在学习中 我认为我的注册表有问题 username password email全部成功插入MySQL registered and last seen不要 我以为我正在使用getTimestamp 错了 但它呼应
  • 使用 Sequelize (NodeJS) 代替 * 指定特定字段

    好吧 我在 NodeJS 中有一个项目 我正在其中使用 Sequelize 来实现 MySQL ORM 这件事工作得非常好 但是我试图弄清楚是否有一种方法可以指定在查询的基础上返回哪些字段 或者是否有一种方法可以在某处执行 query 例如
  • MySQL Tinybit(1) 通过视图的列

    我有一个连接 2 个表的视图 其中一个表具有表示布尔值的tinyint 1 类型的列 该表在连接时并不总是有条目 因此当行丢失时视图需要采用 0 false 值 我希望视图公开 TINYINT 1 类型且 NOT NULL 类型的列 因为它
  • Magento - 无法重新索引产品价格 - 外键约束失败

    我最近刚刚将我的 magento 商店从 1 4 2 升级到 1 7 0 2 升级进行得很顺利 但是当我尝试在升级后重新索引数据时 产品价格失败了 我尝试过使用php shell indexer php reindexall来自 SSH 它
  • MySQL - 查找接近的匹配项

    MySQL 有没有办法在文本字段中找到紧密匹配的内容 说找到 email protected cdn cgi l email protection当搜索时 email protected cdn cgi l email protection
  • 如何在没有 DROP 数据库权限的情况下从命令行删除所有 MySQL 表? [复制]

    这个问题在这里已经有答案了 如何使用命令提示符删除 Windows MySQL 中的所有表 我想这样做的原因是我们的用户有权访问数据库删除 但无权重新创建数据库本身 因此我们必须手动删除表 有没有办法一次删除所有表 请记住 大多数表都与外键

随机推荐

  • GrantPermissionCallable:权限:无法授予 android.permission.SET_TIME

    我正在尝试使用新的授予权限规则 https developer android com reference android support test rule GrantPermissionRule html这是最新支持库的一部分 在我的清
  • 在单个 matplotlib 图上嵌入多个 gridspec 布局?

    我正在使用 python 图形库 matplotlib 来绘制报告中的几项内容 我发现自己需要在较小图形的任意网格上方有几个固定计数的图形 我四处搜索 但找不到任何可以让我在单个 matplotlib 图上使用两个 gridspec 布局的
  • 我可以使用购买状态 API 来验证应用程序是否是通过 Play 商店购买的

    我有一个与我的后端通信的应用程序 我希望后端仅在用户通过游戏商店购买该应用程序并且没有窃取它时接受并响应 所以想法是 用户通过 Playstore 购买应用程序 应用程序通过服务器进行通信并发送使用该应用程序的用户的gmail地址 服务器询
  • Django 基于类的 DeleteView 示例

    有谁知道或有人可以制作一个 Django 基于类的通用 DeleteView 的简单示例吗 我想子类化 DeleteView 并确保当前登录的用户在删除该对象之前拥有该对象的所有权 任何帮助将非常感激 先感谢您 这是一个简单的 from d
  • FITS文件的坐标转换问题

    我已经在 python 中加载并绘制了一个 FITS 文件 在上一篇文章的帮助下 我成功地将轴从像素转换为天体坐标 但我无法正确地以毫角秒 mas 为单位获取它们 代码如下 import numpy as np import matplot
  • os.walk 在第一次找到后停止查找子目录

    我需要获取目录中第一次出现的repository config 文件并停止在子目录中查找 这是我的目录树 WAS80 base disk1 ad repository config WAS80 base disk1 md repositor
  • 在脚本中调用matlab脚本

    我有两个 matlab 脚本文件 m 不是函数文件 如果我想在当前脚本中调用另一个脚本 我应该使用哪个命令 谢谢 我找到了答案 只需在另一个脚本中命名该脚本即可 myOtherScript 如果您愿意 可以使用 run myOtherScr
  • WCF 客户端传递用户名令牌,并将 MustUnderstand 设置为 true

    我的任务是创建一个将由外部客户端使用的 WCF 服务 客户端使用 WSSE 安全性 具体来说 他们通过 SOAP 标头传递用户名令牌 WCF 服务托管在启用了 SSL 的 IIS 服务器上 至此 我已经有了一个半工作原型 我现在处理的问题是
  • 检测画布内的鼠标单击位置

    我在尝试定义一个单击空白区域的函数时遇到了一个真正的问题 到目前为止 我已经成功地定义了单击一个对象的位置 其中有 10 个 但现在我需要一个单独的函数 以便在不单击任何对象时使用 总体思路可以在以下位置找到 http deciballs
  • IIS 无法将 Windows 凭据传递到 SQL Server for ASP.NET Core 应用程序

    我在一家大公司工作 每个人都有 Intranet 和 Windows AD 登录 我们有许多内部 SQL Server 数据库 允许我们使用 Windows 身份验证登录 我正在尝试通过 ASP NET Core 应用程序连接到其中一个数据
  • 工作表/范围选择(组合)不起作用

    我的 VBA 发生了一些变化 不允许我完成某些例程 我在下面列出了一个非常简单的例子 如果有人经历过此问题 我将非常感谢为解决此问题提供的任何支持 问题的简单示例 当我使用以下代码时 它工作正常 Sheets Sheet1 Select R
  • 使用 T-SQL 计算“nvarchar”字符串的 SHA1 哈希值

    我正在尝试计算SHA1使用 T SQL 计算 unicode 字符串的哈希值 下面的代码可以很好地工作ASCII字符串 declare input varchar 50 set input some text print SHA1 Hash
  • SQL LIKE 条件检查整数?

    我正在使用一组 SQL LIKE 条件来遍历字母表并列出以适当字母开头的所有项目 例如获取标题以字母 A 开头的所有书籍 SELECT FROM books WHERE title ILIKE A 这对于字母来说没问题 但是如何列出以任意数
  • 使用 xpath 和 nightwatch.js 单击动态文本

    我希望在我的应用程序中单击带有动态文本的元素 通常 要单击带有文本的元素 我会执行以下操作 useXpath click contains text some text 对于具有动态名称的测试 我尝试以下操作 useXpath click
  • window.opener 在 Firefox 中为空

    我有一个页面 打开弹出窗口为 openWindow top prcsTypeSelectionPopup event prcsTypeSelection lovWindow width 750 height 550 true dialog
  • 如何在R中保存包含很多点的pdf

    所以我必须保存一个包含很多点的pdf图 那不是问题 问题是当我打开它时 绘制所有这些点需要很长时间 我怎样才能以这样的方式保存这个pdf 当有人打开它时 它不必逐点绘制 如果图片质量下降一点我也没关系 这是一个示例 我认为这不会使您的计算机
  • 在 Android 中清除 AdMob 生成的缓存文件是一个好习惯吗?

    我已将 AdMob 集成到我的 Android 应用程序中 我注意到该应用程序在应用程序数据文件夹内 AdMob 生成的名为 app webview 的文件夹中占用了越来越多的存储空间 我应该在每次应用程序退出时清除此文件夹的内容吗 我应该
  • @Constraint 中清空 validatedBy

    我注意到所有内置约束都有一个空值validatedBy参数输入 Constraint i e Constraint validatedBy 首先 为什么允许它们具有空值validatedBy 我认为您可以仅将不需要额外验证的约束组合留空 另
  • Eclipse 抱怨 Web 应用程序属性

    我的 web xml 中的网络应用程序声明是
  • 如何强制MySQL将0作为有效的自增值

    长话短说 我有一个 SQL 文件 我想将其导入为skelstyle 文件 因此这将以编程方式重复完成 我可以根据需要编辑 SQL 文件 但我不想碰应用程序本身 该应用程序使用userid 0代表匿名用户 它在数据库中还有一个相关 空白 条目