MySQLのこういうのっていかがなもんか


使

Create Table: CREATE TABLE `users` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(128) NOT NULL,
  `delete_null_flag` tinyint(1) DEFAULT '1',
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`,`delete_null_flag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

insert
mysql> insert into users (name) values ('shoichimasuhara');
Query OK, 1 row affected (0.01 sec)


mysql> select * from users;
+----+-----------------+------------------+
| id | name            | delete_null_flag |
+----+-----------------+------------------+
|  1 | shoichimasuhara |                1 |
+----+-----------------+------------------+

unique
mysql> insert into users (name) values ('shoichimasuhara');
ERROR 1062 (23000): Duplicate entry 'shoichimasuhara-1' for key 'name'

delete_null_flagNULLinsert
mysql> update users set delete_null_flag = NULL where id = 1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from users;
+----+-----------------+------------------+
| id | name            | delete_null_flag |
+----+-----------------+------------------+
|  1 | shoichimasuhara |             NULL |
+----+-----------------+------------------+
1 row in set (0.00 sec)

mysql> insert into users (name) values ('shoichimasuhara');
Query OK, 1 row affected (0.01 sec)

mysql> select * from users;
+----+-----------------+------------------+
| id | name            | delete_null_flag |
+----+-----------------+------------------+
|  1 | shoichimasuhara |             NULL |
|  3 | shoichimasuhara |                1 |
+----+-----------------+------------------+
2 rows in set (0.00 sec)

delete_null_flagNULL
mysql> update users set delete_null_flag = NULL where id = 3;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from users;
+----+-----------------+------------------+
| id | name            | delete_null_flag |
+----+-----------------+------------------+
|  1 | shoichimasuhara |             NULL |
|  3 | shoichimasuhara |             NULL |
+----+-----------------+------------------+
2 rows in set (0.00 sec)

()


NULL
 

() 調調
 




 

delete使
mysql> alter table users add comment text;
Query OK, 2 rows affected (0.06 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> insert into users (name, comment) values ('shoichimasuhara', '私はたぶん3人目だと思うから。');
Query OK, 1 row affected (0.01 sec)

mysql> select * from users\G
*************************** 1. row ***************************
              id: 1
            name: shoichimasuhara
delete_null_flag: NULL
         comment: NULL
*************************** 2. row ***************************
              id: 3
            name: shoichimasuhara
delete_null_flag: NULL
         comment: NULL
*************************** 3. row ***************************
              id: 4
            name: shoichimasuhara
delete_null_flag: 1
         comment: 私はたぶん3人目だと思うから。
3 rows in set (0.00 sec)