Home Database Mysql Tutorial 标识列和GUID列

标识列和GUID列

Jun 07, 2016 pm 05:39 PM
guid logo

在SQL Server的表中,可能会有两种特殊的列。一种是标识列(Identity),一种是全球唯一标识符(GUID) 首先看第一种 通过使用 IDENTITY 属性可以实现标识符列。这使得开发人员可以为表中所插入的第一行指定一个标识号(Identity Seed 属性),并确定要添加到

在SQL Server的表中,可能会有两种特殊的列。一种是标识列(Identity),一种是全球唯一标识符(GUID)

首先看第一种

通过使用 IDENTITY 属性可以实现标识符列。这使得开发人员可以为表中所插入的第一行指定一个标识号(Identity Seed 属性),并确定要添加到种子上的增量(Identity Increment 属性)以确定后面的标识号。将值插入到有标识符列的表中之后,数据库引擎会通过向种子添加增量来自动生成下一个标识值。当您向现有表中添加标识符列时,还会将标识号添加到现有表行中,并按照最初插入这些行的顺序应用种子值和增量值。同时还为所有新添加的行生成标识号。不能修改现有表列来添加 IDENTITY 属性。

在用 IDENTITY 属性定义标识符列时,注意下列几点:

  • 通过使值能够显式插入,SET IDENTITY_INSERT 可用于禁用列的 IDENTITY 属性。

    ms191131.note(zh-cn,SQL.100).gif

    注意:

    如果在经常进行删除操作的表中存在标识符列,那么标识值之间可能会出现断缺。已删除的标识值不再重新使用。要避免出现这类断缺,请勿使用 IDENTITY 属性。而是可以在插入行时,以标识符列中现有的值为基础创建一个用于确定新标识符值的触发器。

  •  

    与标识列有关几个特殊关键字

    SELECT $IDENTITY FROM Adventureworks.Sales.SalesOrderHeader
    SELECT IDENTITYCOL FROM Adventureworks.Sales.SalesOrderHeader

     

    还有一个系统变量,可以返回当前最新的标识值: @@identity

     

    然后来看看全球唯一标识符列

    尽管 IDENTITY 属性在一个表内自动进行行编号,但具有各自标识符列的各个表可以生成相同的值。这是因为 IDENTITY 属性仅在使用它的表上保证是唯一的。如果应用程序生成一个标识符列,并且该列在整个数据库或全球联网的所有计算机上的所有数据库中必须是唯一的,请使用 uniqueidentifier 数据类型和 NEWID 或 NEWSEQUENTIALID() 函数。此外,还可以应用 ROWGUIDCOL 属性以指示新列是行 GUID 列。与使用 IDENTITY 属性定义的列不同,数据库引擎不会为 uniqueidentifier 类型的列自动生成值。若要插入全局唯一值,请为该列创建 DEFAULT 定义来使用 NEWID 或 NEWSEQUENTIALID 函数生成全局唯一值。有关详细信息,美国空间,香港服务器,请参阅使用 uniqueidentifier 数据。

    可以使用 $ROWGUID 关键字在选择列表中引用具有 ROWGUICOL 属性的列。这与通过使用 $IDENTITY 关键字可以引用 IDENTITY 列的方法类似。一个表只能有一个 ROWGUIDCOL 列,且必须通过使用 uniqueidentifier 数据类型定义该列。OBJECTPROPERTY (Transact-SQL) 函数可用于确定一个表是否具有 ROWGUIDCOL 列,香港服务器,COLUMNPROPERTY (Transact-SQL) 函数可用于确定 ROWGUIDCOL 列的名称。

    以下示例创建 uniqueidentifier 列作为主键的表。此示例在 DEFAULT 约束中使用 NEWSEQUENTIALID() 函数为新行提供值。将 ROWGUIDCOL 属性应用到 uniqueidentifier 列,以便可以使用 $ROWGUID 关键字对其进行引用。

    CREATE TABLE dbo.Globally_Unique_Data (guid uniqueidentifier CONSTRAINT Guid_Default DEFAULT NEWSEQUENTIALID() ROWGUIDCOL, Employee_Name varchar(60) CONSTRAINT Guid_PK PRIMARY KEY (guid) );
    Statement of this Website
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

    Hot AI Tools

    Undresser.AI Undress

    Undresser.AI Undress

    AI-powered app for creating realistic nude photos

    AI Clothes Remover

    AI Clothes Remover

    Online AI tool for removing clothes from photos.

    Undress AI Tool

    Undress AI Tool

    Undress images for free

    Clothoff.io

    Clothoff.io

    AI clothes remover

    Video Face Swap

    Video Face Swap

    Swap faces in any video effortlessly with our completely free AI face swap tool!

    Hot Tools

    Notepad++7.3.1

    Notepad++7.3.1

    Easy-to-use and free code editor

    SublimeText3 Chinese version

    SublimeText3 Chinese version

    Chinese version, very easy to use

    Zend Studio 13.0.1

    Zend Studio 13.0.1

    Powerful PHP integrated development environment

    Dreamweaver CS6

    Dreamweaver CS6

    Visual web development tools

    SublimeText3 Mac version

    SublimeText3 Mac version

    God-level code editing software (SublimeText3)

    Hot Topics

    Java Tutorial
    1662
    14
    PHP Tutorial
    1262
    29
    C# Tutorial
    1235
    24
    When might a full table scan be faster than using an index in MySQL? When might a full table scan be faster than using an index in MySQL? Apr 09, 2025 am 12:05 AM

    Full table scanning may be faster in MySQL than using indexes. Specific cases include: 1) the data volume is small; 2) when the query returns a large amount of data; 3) when the index column is not highly selective; 4) when the complex query. By analyzing query plans, optimizing indexes, avoiding over-index and regularly maintaining tables, you can make the best choices in practical applications.

    Can I install mysql on Windows 7 Can I install mysql on Windows 7 Apr 08, 2025 pm 03:21 PM

    Yes, MySQL can be installed on Windows 7, and although Microsoft has stopped supporting Windows 7, MySQL is still compatible with it. However, the following points should be noted during the installation process: Download the MySQL installer for Windows. Select the appropriate version of MySQL (community or enterprise). Select the appropriate installation directory and character set during the installation process. Set the root user password and keep it properly. Connect to the database for testing. Note the compatibility and security issues on Windows 7, and it is recommended to upgrade to a supported operating system.

    MySQL: Simple Concepts for Easy Learning MySQL: Simple Concepts for Easy Learning Apr 10, 2025 am 09:29 AM

    MySQL is an open source relational database management system. 1) Create database and tables: Use the CREATEDATABASE and CREATETABLE commands. 2) Basic operations: INSERT, UPDATE, DELETE and SELECT. 3) Advanced operations: JOIN, subquery and transaction processing. 4) Debugging skills: Check syntax, data type and permissions. 5) Optimization suggestions: Use indexes, avoid SELECT* and use transactions.

    Can mysql and mariadb coexist Can mysql and mariadb coexist Apr 08, 2025 pm 02:27 PM

    MySQL and MariaDB can coexist, but need to be configured with caution. The key is to allocate different port numbers and data directories to each database, and adjust parameters such as memory allocation and cache size. Connection pooling, application configuration, and version differences also need to be considered and need to be carefully tested and planned to avoid pitfalls. Running two databases simultaneously can cause performance problems in situations where resources are limited.

    Laravel Eloquent ORM in Bangla partial model search) Laravel Eloquent ORM in Bangla partial model search) Apr 08, 2025 pm 02:06 PM

    LaravelEloquent Model Retrieval: Easily obtaining database data EloquentORM provides a concise and easy-to-understand way to operate the database. This article will introduce various Eloquent model search techniques in detail to help you obtain data from the database efficiently. 1. Get all records. Use the all() method to get all records in the database table: useApp\Models\Post;$posts=Post::all(); This will return a collection. You can access data using foreach loop or other collection methods: foreach($postsas$post){echo$post->

    RDS MySQL integration with Redshift zero ETL RDS MySQL integration with Redshift zero ETL Apr 08, 2025 pm 07:06 PM

    Data Integration Simplification: AmazonRDSMySQL and Redshift's zero ETL integration Efficient data integration is at the heart of a data-driven organization. Traditional ETL (extract, convert, load) processes are complex and time-consuming, especially when integrating databases (such as AmazonRDSMySQL) with data warehouses (such as Redshift). However, AWS provides zero ETL integration solutions that have completely changed this situation, providing a simplified, near-real-time solution for data migration from RDSMySQL to Redshift. This article will dive into RDSMySQL zero ETL integration with Redshift, explaining how it works and the advantages it brings to data engineers and developers.

    The relationship between mysql user and database The relationship between mysql user and database Apr 08, 2025 pm 07:15 PM

    In MySQL database, the relationship between the user and the database is defined by permissions and tables. The user has a username and password to access the database. Permissions are granted through the GRANT command, while the table is created by the CREATE TABLE command. To establish a relationship between a user and a database, you need to create a database, create a user, and then grant permissions.

    MySQL: The Ease of Data Management for Beginners MySQL: The Ease of Data Management for Beginners Apr 09, 2025 am 12:07 AM

    MySQL is suitable for beginners because it is simple to install, powerful and easy to manage data. 1. Simple installation and configuration, suitable for a variety of operating systems. 2. Support basic operations such as creating databases and tables, inserting, querying, updating and deleting data. 3. Provide advanced functions such as JOIN operations and subqueries. 4. Performance can be improved through indexing, query optimization and table partitioning. 5. Support backup, recovery and security measures to ensure data security and consistency.

    See all articles