테이블 생성 삭제 / 데이터 입력 삭제
-
Version : Mariadb 5.5.4.2-WinX64
테이블 생성 삭제에 대해서 알아본다.
[테이블 생성]
-
기본 문법
CREATE [OR REPLACE] [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name (create_definition,...) [table_options ]... [partition_options] CREATE [OR REPLACE] [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)] [table_options ]... [partition_options] select_statement CREATE [OR REPLACE] [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name { LIKE old_table_name | (LIKE old_table_name) } select_statement: [IGNORE | REPLACE] [AS] SELECT ... (Some legal select statement) |
create table tbl_a ( num int, name nvarchar(50) ) |
[테이블 삭제]
drop table tbl_a |
[자동증가 값이 있는 테이블 생성]
AUTO_INCREAMENT 옵션으로 컬럼에 자동증가 값을 부여 할 수 있다. (MS SQL Server에서는 Identity 명령어를 사용한다.)
create table tbl_a ( num int AUTO_INCREMENT, name nvarchar(50), primary key (num) );
insert into tbl_a (name) values ('kang'); insert into tbl_a (name) values ('sung');
select * from tbl_a |
SET INSERT_ID = ? 명령을 사용하여 자동 증가값의 시작 값을 변경 할 수 있다.
set insert_id = 10;
insert into tbl_a (name) values ('wook');
select * from tbl_a; |
INSERT_ID 값을 이미 존재하는 값으로 변경하고 데이터를 입력하면 옵션은 오류 없이 적용 되지만 데이터를 입력 할 때 PRIMARY 오류가 발생한다.
set insert_id = 2;
insert into tbl_a (name) values ('kang1'); |
위 예제에서 INSERT_ID = 3을 입력하고 데이터를 입력하면 정상적으로 입력되며 (현재 3 값이 없기 때문에) 다음 값은 마지막 INCREMENT 값 + 1인 11로 입력 된다.
[데이터 삭제]
기본 문법
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [WHERE where_condition] [ORDER BY ...] [LIMIT row_count] [RETURNING select_expr [, select_expr ...]] |
delete from tbl_a |
[기타]
AUTO_INCREAMENT에 관한 정보를 찾다 보니 InnoDB에서 AUTO_INCREAMENT를 맹신하지 말라는 글이 있다.
글 내용을 요약하면 MyISAM테이블을 성능 및 안정성 이슈로 InnoDB로 전환 후 서버 재시작 시 매번 Primary Key 중복 오류가 발생한 사례가 있다. Auto_Increment는 스토리지 엔진 별로 다르게 동작하기 때문에 예기치 못한 문제가 발생 할 수 있다고 한다. MyISAM경우 파일 기반이며 InnoDB는 메모리 기반의 스토리지이기 때문에 다른 방식으로 관리된다고 한다. 따라서 DB가 처음 구동이 되면 Auto_Increament 속성을 가진 테이블은 초기화 된다고 한다. 마지막 값이 NULL이면 1로 초기화 된다고 한다.
자세한 내용은 원문을 참고 한다.(http://gywn.net/2013/02/mysql-innodb-auto-increment/)
2015-04-10 / 강성욱 / http://sqlmvp.kr
MySQL, MariaDB, 마리아DB, 마이에스큐엘, MariaDB 설치, MySQL 생성, 데이터베이스, MariaDB 생성, 데이터베이스 생성, MariaDB 인코딩 변경, MySQL인코딩 변경
'MySQL, MariaDB' 카테고리의 다른 글
외부접속 허용하기 (0) | 2015.07.16 |
---|---|
데이터 타입 (0) | 2015.07.16 |
데이터베이스 생성 삭제 (0) | 2015.07.16 |
HeidiSQL 툴 살펴보기 (0) | 2015.07.16 |
MariaDB 설치 (0) | 2015.07.16 |