반응형
MySQL DEFAULT vsMariaDB 디폴트
있습니다table_a
와auto_increment
명명된 열id
및 문자열 열 이름 지정name
.
문의 실행:INSERT INTO table_a(id, name)VALUES(DEFAULT, 'test');
결과 대상(MySQL):
+----+------+
| id | name |
+----+------|
| 1 | test |
+----+------+
에서의 같은 스테이트먼트 실행MariaDB
결과:
+----+------+
| id | name |
+----+------|
| 0 | test |
+----+------+
기타 시나리오:
편집하려고 했는데AUTO_INCREMENT
테이블의 값을 30으로 설정합니다.MySQL은 30을 삽입하고 MariaDB는 0을 삽입합니다.
의 차이점은 무엇입니까?DEFAULT
에 가치를 두다.INSERT
MySQL과 MariaDB의 스테이트먼트이것은 MariaDB의 버그입니까, 아니면 정상적으로 동작하고 있습니까?
이 동작은 에 의해 제어됩니다.SQL_MODE='NO_AUTO_VALUE_ON_ZERO'
MySQL과 MariaDB에 모두 포함되어 있습니다.그 차이를 관찰한다면, 아마도 당신이 다른 것을 가지고 있기 때문일 것이다.sql_mode
예를 들어.
MariaDB [test]> CREATE TABLE t (id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY);
Query OK, 0 rows affected (0.20 sec)
MariaDB [test]> SET SQL_MODE='';
Query OK, 0 rows affected (0.00 sec)
MariaDB [test]> INSERT INTO t (id) VALUES (DEFAULT);
Query OK, 1 row affected (0.05 sec)
MariaDB [test]> SELECT * FROM t;
+----+
| id |
+----+
| 1 |
+----+
1 row in set (0.00 sec)
MariaDB [test]> DROP TABLE t;
Query OK, 0 rows affected (0.14 sec)
MariaDB [test]> CREATE TABLE t (id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY);
Query OK, 0 rows affected (0.30 sec)
MariaDB [test]> SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO';
Query OK, 0 rows affected (0.00 sec)
MariaDB [test]> INSERT INTO t (id) VALUES (DEFAULT);
Query OK, 1 row affected (0.03 sec)
MariaDB [test]> SELECT * FROM t;
+----+
| id |
+----+
| 0 |
+----+
1 row in set (0.00 sec)
언급URL : https://stackoverflow.com/questions/44536965/mysql-default-vs-mariadb-default
반응형
'programing' 카테고리의 다른 글
클래스를 찾을 수 없음: IntelliJ의 빈 테스트 스위트 (0) | 2022.10.18 |
---|---|
Netty vs Apache MINA (0) | 2022.10.18 |
Python 개체를 올바르게 정리하려면 어떻게 해야 합니까? (0) | 2022.10.18 |
MariaDB는 MYSQL/Oracle JSON_TAB의 스케일러블 등가값을 가지고 있습니까?LE (0) | 2022.10.08 |
Nuxt.js에서의 CORS 차단 클라이언트 요구 (0) | 2022.10.08 |