Mysql SQL Mode
一、Mysql SQL Mode简介 MySQL服务器能够工作在不同的SQL模式下,并能针对不同的客户端以不同的方式应用这些模式。这样,应用程序就能对服务器操作进行量身定制以满足自己的需求。这类模式定义了MySQL应支持的SQL语法,以及应该在数据上执行何种确认检查。这
一、Mysql SQL Mode简介 MySQL服务器能够工作在不同的SQL模式下,并能针对不同的客户端以不同的方式应用这些模式。这样,应用程序就能对服务器操作进行量身定制以满足自己的需求。这类模式定义了MySQL应支持的SQL语法,以及应该在数据上执行何种确认检查。这样,就能在众多不同的环境下、与其他数据库服务器一起更容易地使用MySQL。可以使用“--sql-mode="modes"”选项,通过启动mysqld来设置默认的SQL模式。从MySQL 4.1开始,也能在启动之后,使用SET [SESSION|GLOBAL] sqlmode='modes'语句,通过设置sqlmode变量更改模式。
通常在linux下安装完mysql后,默认的sql-mode值是空,在这种情形下mysql执行的是一种不严格的检查,例如日期字段可以插入’0000-00-00 00:00:00’这样的值,还有如果要插入的字段长度超过列定义的长度,那么mysql不会终止操作,而是会自动截断后面的字符继续插入操作,如下例: mysql> create table t5 (c1 char(3)); mysql> insert into t5 values('abcd'); mysql> select * from t5; +------+ | c1 | +------+ | abc | +------+ 1 row in set (0.00 sec) 我们发现插入的字符被自动截断了,但是如果我们本意希望如果长度超过限制就报错,那么我们可以设置sqlmode为STRICTTRANS_TABLES,如下: mysql> set session sqlmode='STRICTTRANS_TABLES' 这样我们再执行同样的操作,mysql就会告诉我们插入的值太长,操作被终止,如下: mysql> insert into t5 values('abcd'); ERROR 1406 (22001): Data too long for column 'c1' at row 1
经常使用的sql_mode值如下: ANSI :更改语法和行为,使其更符合标准SQL。
STRICTTRANSTABLES:如果不能将给定的值插入到事务表中,则放弃该语句。对于非事务表,如果值出现在单行语句或多行语句的第1行,则放弃该语句。
TRADITIONAL:Make MySQL的行为象“传统”SQL数据库系统。该模式的简单描述是当在列中插入不正确的值时“给出错误而不是警告”。注释:一旦发现错误立即放弃INSERT/UPDATE。如果你使用非事务存储引擎,这种方式不是你想要的,因为出现错误前进行的数据更改不会“滚动”,结果是更新“只进行了一部分”。 说明:如果把sqlmode的值设置成后面的两个值(也就是我们说的严格模式),那么当在列中插入或更新不正确的值时,mysql将会给出错误,并且放弃insert/update操作。在我们的一般应用中建议使用这两种模式,而不是使用默认的空或ANSI模式。但是需要注意的问题是,如果数据库运行在严格模式下,并且你的存储引擎不支持事务,那么有数据不一致的风险存在,比如一组sql中有两个dml语句,如果后面的一个出现了问题,但是前面的已经操作成功,那么mysql并不能回滚前面的操作。因此说设置sqlmode需要应用人员权衡各种得失,从而得到一个合适的选择。
Sql_mode的值还有很多,这里不再累述,可以参考相关的手册。
二、SQL Mode与可移植性 如果mysql与其它异构数据库之间有数据移植的需求的话,那么下面的sql_mode的组合设置可以达到相应的效果: 数据库 Sql_mode值 DB2 :PIPESASCONCAT、ANSIQUOTES、IGNORESPACE、NOKEYOPTIONS、NOTABLEOPTIONS、NOFIELDOPTIONS
MAXDB: PIPESASCONCAT、ANSIQUOTES、IGNORESPACE、NOKEYOPTIONS、NOTABLEOPTIONS、NOFIELDOPTIONS、 NOAUTOCREATE_USER
MSSQL: PIPESASCONCAT、ANSIQUOTES、IGNORESPACE、NOKEYOPTIONS、NOTABLEOPTIONS、 NOFIELDOPTIONS
ORACLE: PIPESASCONCAT、ANSIQUOTES、IGNORESPACE、NOKEYOPTIONS、NOTABLEOPTIONS、NOFIELDOPTIONS、NOAUTOCREATE_USER
POSTGRESQL: PIPESASCONCAT、ANSIQUOTES、IGNORESPACE、NOKEYOPTIONS、NOTABLEOPTIONS、NOFIELDOPTIONS
三、SQL Mode与数据效验 SQL Mode 还可以实现对数据效验和转移等功能如: ①效验日期数据合法性. ②在INSERT或UPDATE过程中,如果被零除(或MOD(X,0)),则产生错误 ③将‘"’视为识别符引号(‘`’引号字符) ④禁用反斜线字符(‘\’)做为字符串内的退出字符。启用NOBACKSLASHESCAPES模式,反斜线则成为普通字符。 ⑤将||视为字符串连接操作符(+)(同CONCAT()),而不视为OR。

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

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

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











The main role of MySQL in web applications is to store and manage data. 1.MySQL efficiently processes user information, product catalogs, transaction records and other data. 2. Through SQL query, developers can extract information from the database to generate dynamic content. 3.MySQL works based on the client-server model to ensure acceptable query speed.

Laravel is a PHP framework for easy building of web applications. It provides a range of powerful features including: Installation: Install the Laravel CLI globally with Composer and create applications in the project directory. Routing: Define the relationship between the URL and the handler in routes/web.php. View: Create a view in resources/views to render the application's interface. Database Integration: Provides out-of-the-box integration with databases such as MySQL and uses migration to create and modify tables. Model and Controller: The model represents the database entity and the controller processes HTTP requests.

I encountered a tricky problem when developing a small application: the need to quickly integrate a lightweight database operation library. After trying multiple libraries, I found that they either have too much functionality or are not very compatible. Eventually, I found minii/db, a simplified version based on Yii2 that solved my problem perfectly.

Article summary: This article provides detailed step-by-step instructions to guide readers on how to easily install the Laravel framework. Laravel is a powerful PHP framework that speeds up the development process of web applications. This tutorial covers the installation process from system requirements to configuring databases and setting up routing. By following these steps, readers can quickly and efficiently lay a solid foundation for their Laravel project.

MySQL and phpMyAdmin are powerful database management tools. 1) MySQL is used to create databases and tables, and to execute DML and SQL queries. 2) phpMyAdmin provides an intuitive interface for database management, table structure management, data operations and user permission management.

Compared with other programming languages, MySQL is mainly used to store and manage data, while other languages such as Python, Java, and C are used for logical processing and application development. MySQL is known for its high performance, scalability and cross-platform support, suitable for data management needs, while other languages have advantages in their respective fields such as data analytics, enterprise applications, and system programming.

The basic operations of MySQL include creating databases, tables, and using SQL to perform CRUD operations on data. 1. Create a database: CREATEDATABASEmy_first_db; 2. Create a table: CREATETABLEbooks(idINTAUTO_INCREMENTPRIMARYKEY, titleVARCHAR(100)NOTNULL, authorVARCHAR(100)NOTNULL, published_yearINT); 3. Insert data: INSERTINTObooks(title, author, published_year)VA

MySQL efficiently manages structured data through table structure and SQL query, and implements inter-table relationships through foreign keys. 1. Define the data format and type when creating a table. 2. Use foreign keys to establish relationships between tables. 3. Improve performance through indexing and query optimization. 4. Regularly backup and monitor databases to ensure data security and performance optimization.
