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

创建表,检查可能的文本值

孔棋
2023-03-14
问题内容

我正在使用MS Access 2010,并且尝试使用SQL创建表。我想添加一些检查约束,但遇到一些麻烦:

CREATE TABLE Test (
tester Text CHECK (tester IN ('ABC', 'BCD', 'CDE'))
);

我收到语法错误,

有什么建议?

谢谢!

编辑:对不起,如果我不清楚。我实际上想要检查的是他可以拥有的唯一值是“ ABC”,“ BCD”或“ CDE”。

EDIT2:我尝试了其他方法:

CREATE TABLE Test (
tester Text NOT NULL,
CONSTRAINT m_pk PRIMARY KEY(tester),
CONSTRAINT check_tester CHECK (DATALENGTH(tester) > 2)
);

而且我也收到语法错误。检查Text值时,我真的不了解吗?我可能看不到这两个地方哪里有错。


问题答案:

从Jet 4开始,CHECK从ADO(但不是从DAO)执行的Access DDL支持约束。

您可以执行一个DDL语句,该语句Test使用您的约束来创建表。您无需执行一个语句来创建表,而无需执行另一条语句来添加约束。

CREATE TABLE Test
    (
        tester TEXT(255),
        CONSTRAINT ABC_or_BCD_or_CDE CHECK
            (
                tester IN ('ABC', 'BCD', 'CDE')
            )
    );

我对它进行了格式化,以使其更易于检查。您可以使用此VBA执行以下语句:

strSql = "CREATE TABLE Test ( tester Text(255)," & vbCrLf & _
    "CONSTRAINT ABC_or_BCD_or_CDE" & vbCrLf & _
    "CHECK ( tester IN ('ABC', 'BCD', 'CDE')));"
Debug.Print strSql
CurrentProject.Connection.Execute strSql

笔记:

  • CurrentProject.Connection是ADO对象,因此其.Execute方法成功。使用CurrentDb.Execute(DAO方法)的相同语句将失败。
  • 使用ADO,将字段声明TEXT不包含长度(tester TEXT而不是tester TEXT(255))将为您提供一个备注字段。


 类似资料:
  • 问题内容: 我有一个带有文本类型的输入框: 我有一个名字列表: 现在让它只有2。当我键入时,它应该显示为建议。当我输入seeu`作为建议时。如何做到这一点? 问题答案: 的填充选项DataList控件与值与数据- NG-重复 : 祝好运!

  • 如何将用户键入的文本拼写检查到TextArea? 这个JavaFX组件可以做到这一点吗? 我可以使用标准拼写检查从JavaJavaFX?

  • 问题内容: 如果我这样做: 然后创建文件,并始终返回“文件存在”。是否可以不创建文件就检查文件是否存在? 编辑: 我忘了提到它处于for循环中。所以这是真实的东西: 问题答案: 实例化a时,您并没有在磁盘上创建任何东西,而只是构建了一个可以调用某些方法的对象,例如。 既好又便宜,不要试图避免这种实例化。 该实例只有两个字段: 这是构造函数: 如您所见,实例只是路径的封装。创建它以便进行调用是继续进

  • 我有一份很轻松的工作,在创建检查站方面很吃力。它几乎没有州(除了一些Kafka偏移)。 工作本身有以下基本设置: Kafka索资源- 迭代函数再次执行HTTP调用并转发成功的消息,丢弃4xx并重试5xx。从我的指标中可以看到,所有这些都发生了,我得到了一些5xx(返回迭代源)、一些4xx(忽略)和很多2xx(转发到HDFS)。 如果我查看线程转储,我可以看到某个任务被阻止了: 这一个正在等待对象监

  • 问题内容: 实际上是否可以旋转T-SQL(2005),以使(出于争论的目的)第一列的行的值成为输出表的列的标题? 我意识到这并不是PIVOT真正的目的,而是我所需要的-能够请求表的功能,这些列是预先输入的,因为这些列已作为值输入到表中,因此事先不知道。 即使是骇客也不错,tbh。 问题答案: tzik Ben-Gan关于如何构建动态PIVOT的示例,我强烈推荐他的Inside Microsoft

  • 问题内容: 我一直在阅读和谷歌搜索,但似乎找不到这个简单的答案。 我有一个读取文件的功能,但是如果文件不存在,则会出现混乱。我想做的是一个函数,该函数在读取之前会检查文件是否存在,如果不存在,则会创建一个空文件。这就是我所拥有的。 问题答案: 不要尝试先检查是否存在,因为如果同时创建了文件,那么您将面临一场竞赛。您可以打开带有标志的文件以创建该文件(如果不存在):