将 NOT NULL 约束添加到列

2023-12-19

我正在使用 PHPMyAdmin,并尝试将 NOT NULL 约束添加到表的列中。

PHPMyAdmin 接受我的以下查询:

ALTER TABLE `wall` MODIFY `token_message` varchar(40) NOT NULL;

但我仍然可以插入空字符串(=NULL),我不明白为什么。

PS:如果您要给我一些其他查询来添加此约束,请注意,我已经尝试过这 3 个查询,它们在我的 PHPMyAdmin 中不起作用(某种错误:#1064 - 您的 SQL 语法中有错误;查看手册):

ALTER TABLE `wall` ALTER COLUMN `token_message` SET NOT NULL;
ALTER TABLE `wall` ALTER COLUMN `token_message` varchar(40) NOT NULL;
ALTER TABLE `wall` MODIFY `token_message` CONSTRAINTS token_message_not_null NOT NULL; 

您写道,“我仍然可以插入空字符串(=NULL)”,这听起来像是一个误解。在 SQL 中,空字符串不会计算为 NULL,反之亦然。尝试插入一个空字符串并执行SELECT from wall where token_message is NULL。您应该返回零行。然后尝试在您指定的位置进行插入NULL(不带引号)作为您的列的值,您应该会收到预期的错误消息。

如果这些测试按预期工作,那么一切都很好,您的问题实际上是您想要防止插入空白字符串。查看这个问题 https://stackoverflow.com/questions/2514178/im-looking-for-a-constraint-to-prevent-the-insert-of-an-empty-string-in-mysql获取建议,或者只是在查询之前的验证过程中检查空白字符串。

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

将 NOT NULL 约束添加到列 的相关文章

  • sql查询中case语句中的布尔值

    我在选择查询中使用 case 语句 类似这样 Select col1 col2 isActive case when col3 abc then 1 else 0 end col4 from
  • 如何比较 Postgresql 中日期时间字段中的日期?

    在比较 postgresql Windows 中的版本 9 2 4 中的日期时 我遇到了一个奇怪的情况 我的表中有一列说update date与类型timestamp without timezone 客户可以仅使用日期搜索此字段 例如 2
  • 随机排列每行的列值

    我正在使用 C NET 开发多项选择题考试生成器 每次做出报告时 都会在数据库中随机挑选问题 并随机调整选项 我可以做随机问题部分 但我不能做选择的洗牌 我有一张表 其中一行如下 question answer distractor1 di
  • DBX 错误:驱动程序无法正确初始化

    我在跑步德尔福XE3 终极版 MySQL 数据库 这是我点击时收到的错误Test Connection 作为回应 我在 xampp 目录中找到了 libmysql 库 并将其复制到我的 System32 目录中 但这是行不通的 此消息指的是
  • Wordnet sqlite 同义词和示例

    我正在尝试获取给定 wordid 的同义词和示例列表 经过大量的试验和错误 我可以获得所有同义词集的样本 但不是实际的同义词 这是我的查询 它给出了以下结果 select senses wordid senses synsetid sens
  • 级联删除时触发调用

    我在 MySQL 中有表 A 它有一些对其他表 B C D 的级联删除的引用 当从 A 中删除某些内容时 我需要使用触发器 当我直接从 A 删除记录时 此触发器起作用 但它不适用于级联删除 是否存在任何版本的 MySQL 可以让我的触发器与
  • 通过 PDO 将双精度数插入 MySQL 时精度损失

    我遇到了这种非常烦人的行为 我想知道我是否做错了什么 或者这是否是故意的 如果是的话 为什么 每当我在 php 5 3 中有一个 double 类型的变量 并且想将其插入到数据库 MYSQL 5 0 的 double 类型字段中时 该值总是
  • 法语和西班牙语的特殊字符可以保存在 varchar 中吗?

    法语和西班牙语中有普通英语中不使用的特殊字符 重音元音等 varchar 是否支持这些字符 或者我需要一个 nvarchar 吗 注 我愿意NOT希望讨论我是否应该使用 nvarchar 还是 varchar 您在谈论什么 SQL 实现 我
  • SQL Like 带有子查询

    我怎样才能做到这一点 SELECT FROM item WHERE item name LIKE SELECT equipment type FROM equipment type GROUP BY equipment type 内部子查询
  • 在bigquery中比较两个表的有效方法

    我有兴趣比较两个表是否包含相同的数据 我可以这样做 standardSQL SELECT key1 key2 FROM SELECT table1 key1 table1 key2 table1 column1 table2 column1
  • MySQL 将表的校验和存储在另一个表中

    语境 我们有包含大量表的大型数据库 他们中的大多数 99 都使用innodb 我们希望有一个日常流程来监视哪个表已被修改 当他们使用 innodb 的值时Update time from SHOW table STATUS from inf
  • 重用 PDO 语句 var 会使进程崩溃

    我重用一个变量来存储两个不同的 PDO mysql 语句 stmt dbh gt prepare SELECT stmt gt execute stmt dbh gt prepare UPDATE crash here Error in o
  • Sql批量复制截断小数

    当我使用批量复制将十进制值从 C DataTable 插入 Sql Server 2005 时 值会被截断而不是四舍五入 DataTable 中的数据类型为 Decimal 数据库中的数据类型为Decimal 19 3 数据表中的值为 1
  • 如何将此本机 SQL 查询转换为 HQL

    所以我有这个很长的复杂的 Native SQLQuery string hql SELECT FROM SELECT a rownum r FROM select f2 filmid f2 realisateurid f2 titre f2
  • Solr 增量导入不起作用

    我使用的是solr 4 2 请注意 完全导入有效 但增量导入却无效 增量导入不会给出任何错误 但不会获取任何更改 这是数据配置文件
  • 常量值如何影响连接的 ON 子句?

    我最近发现 LEFT JOIN 的 ON 子句可能包含 1 1 等值 这让我感到不安 因为它打破了我对连接功能的看法 我遇到过以下情况的更详细版本 SELECT DISTINCT Person ID FROM Person LEFT JOI
  • 使用多个 WHERE 子句更新 Codeigniter 中的批次

    我查看了 CI 用户指南来了解如何处理update batch 并且它似乎只接受一个索引来匹配要更新的行 但在我的例子中 我需要指定两个索引 例如lang and id page我一起用作索引 这样的lang en id page 115是
  • SQL Server 标识列值从 0 而不是 1 开始

    我遇到了一个奇怪的情况 数据库中的某些表的 ID 从 0 开始 即使 TABLE CREATE 的 IDENTITY 1 1 也是如此 对于某些表来说是这样 但对于其他表则不然 它一直有效到今天 我尝试过重置身份列 DBCC CHECKID
  • 无法将句子插入数据库

    我有一些句子 我必须选择由 6 个以上单词组成的句子 然后它们将被插入到数据库中
  • Postgresql:SERIAL 在约束 INSERT 失败时递增

    有一个像这样的简单表结构 CREATE TABLE test id INT PRIMARY KEY sid SERIAL 我注意到如果我尝试插入一行但它未通过约束测试 即主键约束 SERIAL计数器无论如何都会增加 所以下一次成功插入 si

随机推荐

  • 如何在Java中获取格式为2022-10-03T19:45:47.844Z的日期和时间

    我需要 java 类中 2022 10 03T19 45 47 844Z 格式的当前系统日期和时间 我尝试使用 zoneddatetime 和简单日期格式 但无法从在线获取写入语法或代码 我是 Java 初学者 非常感谢任何帮助 谢谢 tl
  • 自定义授权属性在 WebAPI 中不起作用

    public class CustomAuthorizeAttribute AuthorizationFilterAttribute protected override bool AuthorizeCore HttpContextBase
  • Visual Studio 2017 中缺少任务运行程序配置

    我刚刚安装了 Visual Studio 2017 并打开了我一直在使用 Visual Studio 2015 的解决方案 似乎一切都运行良好 除了 VS 2017 中的任务运行程序资源管理器没有检测到我的一个项目中的 package js
  • 表单模型在 POST 之前未验证

    我正在尝试在我的网络应用程序中创建一个注册页面 但是 我的表单验证不起作用 例如 我的密码最小长度为 4 个承租人 但如果我输入空白密码 它仍然会发出 POST 请求 我如何告诉表单该模型无效并且他们应该更改密码 电子邮件等 Account
  • 无法加载 memtrack 模块(没有这样的文件或目录)

    更新 删除并重新安装捆绑包后 问题仅保留在模拟器上 我刚刚在我的 Windows 8 笔记本电脑上安装了 Android 开发包 我正在尝试安装第一个应用程序 hello world http developer android com t
  • 在 Swift 中使用 Set 时出现编译器分段错误

    这段代码工作正常 let lines one one two let lineSet lines 但在编译这个时 let lines one one two let lineSet Set lines 我越来越 由于信号导致命令失败 分段错
  • 获取列表框中所选项目的值作为字符串

    我试图使用下面的代码获取列表框中所选项目的值 但它始终返回空字符串 DataSet ds searchforPrice Convert ToString listBox1 SelectedItem 在这里 我尝试将所选项目的值作为字符串传递
  • 有人使用 JavaSpaces 技术吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 JavaSpaces 技术是否有真正的实际用途以及它是如何实现的 我们目前正在使用 javaspaces Sun outrigger
  • 禁止在构建时创建 *.vshost.exe 和其他文件

    我找到了有关 Microsoft Visual Studio 额外 文件的以下信息 vshost exe 文件的用途是什么 https stackoverflow com questions 774187 what is the purpo
  • C# MongoDb 序列化 Dictionary

    我的数据库中有一个记录事件的集合 每种类型的事件都有一组不同的数据 我用以下类定义了它 CollectionName LogEvent public class LogEvent public LogEvent string eventTy
  • 协议扩展初始化程序强制调用 self.init

    我刚刚阅读了有关协议初始值设定项要求的 Apple Swift 4 文档 并在协议扩展中提供了默认实现 import UIKit protocol Protocol init extension Protocol init print SD
  • JPGraph - 条形图不显示值

    我正在使用最新版本的 JPGraph 并且尝试更改 graph api 文件以在组条形图上显示值 下面是一段代码 用于显示我的更改 对于那些查看 API 的人来说 这是在 graph group 函数中 tot new BarPlot ar
  • 列出 jar 文件中的类

    如何动态加载 jar 文件并列出其中的类 以下是列出 jar 中的类的代码 import java io IOException import java util Enumeration import java util jar JarEn
  • 用于版本控制和缩小 javascript 的 Maven 插件

    单页 Javascript 应用程序 我构建了一个复杂的 ajax 驱动的单页 Web 应用程序 它使用提供 JSON 服务的 RESTful 后端 Web 服务 javascript 被分成许多不同的文件 每个文件代表某种功能或组件 虽然
  • ImportError:无法导入 DAG 气流

    我有简单的代码 我正在尝试从气流导入 DAG from airflow import DAG from airflow operators import BashOperator S3KeySensor from datetime impo
  • 为什么我可以在 GHCi 中加载模块,而 Atom 却找不到它?

    我在 Windows 10 上使用 Haskell 以及 Stack 和 Atom 有时 我喜欢编写一个独立的程序 hs文件来玩各种东西 当我这样做时 我更喜欢使用 GHCi 与其进行交互 通常 我从 Git Bash 启动它 stack
  • 一个好的单元测试应该具有什么属性?

    单元测试应该 产生确定性结果 独立 be valid 测试还应该具备哪些其他特征 啊 我最喜欢的科目 从哪里开始 根据 Gerard Meszaros 的 xUnit 测试模式 有关单元测试的书 测试应该降低风险 而不是 介绍一下 测试应该
  • Android Studio Manifest 包名合并错误

    What went wrong Execution failed for task app processDebugManifest 清单合并失败 AndroidManifest xml 3 5 40 位置处的包名称 应至少包含一个 点 字
  • 绑定到祖先的 Datacontext

    最好先向您展示我的代码 然后再提出问题
  • 将 NOT NULL 约束添加到列

    我正在使用 PHPMyAdmin 并尝试将 NOT NULL 约束添加到表的列中 PHPMyAdmin 接受我的以下查询 ALTER TABLE wall MODIFY token message varchar 40 NOT NULL 但