如何在SQLite中创建不区分大小写的唯一列

 1911530988com 发布于 2023-02-06 17:07

我一直无法找到答案.我正在尝试使用唯一的电子邮件地址列创建一个表.而当我这样做

CREATE TABLE users (
  email TEXT PRIMARY KEY,
  password TEXT NOT NULL CHECK(password<>''),
  UNIQUE (lower(email))
)

使用PDO时,我收到错误:

致命错误:带有消息'SQLSTATE [HY000]的未捕获异常'PDOException':常规错误:1附近"(":script.php中的语法错误:65堆栈跟踪:#0 script.php(65):PDO-> exec ('创建表我们......')在第65行的script.php中抛出#1 {main}

第65 CREATE TABLE行是该行.如果我取出它UNIQUE,它工作正常.有没有更好的方法呢?

1 个回答
  • COLLATE NOCASE 是你的朋友:

    CREATE TABLE users (
      email TEXT PRIMARY KEY,
      password TEXT NOT NULL CHECK(password<>''),
      UNIQUE (email COLLATE NOCASE)
    )
    

    2023-02-06 17:08 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有