约的目的谁能解释PRIMARY KEY
,UNIQUE KEY
并且KEY
,如果是在一个单一的放在一起CREATE TABLE
在MySQL的声明?
CREATE TABLE IF NOT EXISTS `tmp` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` varchar(255) NOT NULL,
`name` varchar(255) NOT NULL,
`tag` int(1) NOT NULL DEFAULT '0',
`description` varchar(255),
PRIMARY KEY (`id`),
UNIQUE KEY `uid` (`uid`),
KEY `name` (`name`),
KEY `tag` (`tag`)
) ENGINE=InnoDB AUTO_INCREMENT=1 ;
如何将此查询转换为MSSQL?
密钥只是普通索引。一种简化的方法是将其视为图书馆中的卡片目录。它为MySQL指明了正确的方向。
唯一键还用于提高搜索速度,但是它具有以下约束:不能有重复项(不存在两个x和y,其中x不是y且x == y)。
该手册对它的解释如下:
UNIQUE索引会创建约束,以使索引中的所有值都必须不同。如果您尝试添加键值与现有行匹配的新行,则会发生错误。除BDB存储引擎外,此约束不适用于NULL值。对于其他引擎,UNIQUE索引允许可以包含NULL的列使用多个NULL值。如果为UNIQUE索引中的列指定前缀值,则列值在前缀中必须唯一。
主键是“特殊”唯一键。它基本上是唯一的密钥,除了用于识别某些东西。
该手册说明了一般如何使用索引:此处。
在MSSQL中,概念相似。有索引,唯一约束和主键。
未经测试,但我相信等效的MSSQL是:
CREATE TABLE tmp (
id int NOT NULL PRIMARY KEY IDENTITY,
uid varchar(255) NOT NULL CONSTRAINT uid_unique UNIQUE,
name varchar(255) NOT NULL,
tag int NOT NULL DEFAULT 0,
description varchar(255),
);
CREATE INDEX idx_name ON tmp (name);
CREATE INDEX idx_tag ON tmp (tag);
编辑:上面的代码经过测试是正确的;但是,我怀疑这样做有更好的语法。自从我使用SQL Server以来已有一段时间了,显然我已经忘记了很多:)。
Servlet controller.java: 执行时,我收到以下信息: myDb是我的数据库。admin、rescue、not null、varchar(750)、rescue是表名、COL的测试值。名称、空值或非空值、数据类型和主键。
问题内容: 我想定义具有2个TIMESTAMP字段的表,如下所示: 如何避免错误: 重点是保持表架构中和的所需行为。 问题答案: 猜猜这是一个老帖子,但实际上我想mysql在其最新版本中支持2 TIMESTAMP mysql 5.6.25,这就是我目前使用的时间。
org.h2.jdbc.jdbcsqlsyntaxerrorexception:SQL语句“create TABLE HIBERNATE_SEQUENCE(NEXT_VAL BIGINT)engine=[*]myisam”中存在语法错误;应为“标识符”
本文向大家介绍使用MySQL LIKE创建类似于常规表的临时表,包括了使用MySQL LIKE创建类似于常规表的临时表的使用技巧和注意事项,需要的朋友参考一下 让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是创建类似于常规表的临时表的查询- 让我们检查表的描述- 这将产生以下输出-
问题内容: 对于某些Hibernate实体,我们需要存储其创建时间和上次更新时间。你将如何设计? 你将在数据库中使用什么数据类型(假设使用MySQL,可能与JVM时区不同)?数据类型是否支持时区? 你会在Java中使用什么数据类型(Date,Calendar,long,…)? 你将由谁负责设置时间戳(数据库,ORM框架(hibernate)或应用程序程序员)? 你将使用哪些注释进行映射(例如@Te
问题内容: 我是php的新手,这可能是一个愚蠢的错误……但是我不知道发生了什么。我正在尝试使用php在数据库中创建一个表。我想用用户名命名该表。我正在使用变量。这是我的代码 因此,这将创建一个名为的表。变量不会保留。但是- 当我-变量结转。我对此很陌生- 因此,感谢您的帮助。 问题答案: 在您的SQL查询之后添加它-(它确实可以帮助并加快错误纠正时间) 回声 这在您的实例: 发生MySQL错误。错