* MS SQL Server �� DB ���� SQL ������ץȤ�����������ȥ��ץ����
���ε�����ľ���URL: Permlink | ���ε�����°���륫�ƥ���: [MS SQL Server] [SQL]
- �ʤ� SQL ������ץȤ��������Τ�
��¸�� DB ���� SQL ������ץȤ��������Ȥ���������ȵդμ���Ȥ�ΤϤʤ���������ϡ�DB �Υơ��֥��߷פ䥹�ȥ��ɤΥ����ǥ��󥰤� RDBMS ��°�� GUI �ġ���伫ư�����ġ�������褦�ˤʤꡢCREATE TABLE ���ǽ񤤤��ꤹ�뤳�Ȥ��ʤ��ʤä���������פ���ˡ�GUI �Υġ���dz�ȯ�ѥ����о�� DB ��ľ�����ʤ����äơ��������������ǥƥ��ȥ����Ф����֥����Ф���������Ȥ������������ DB �ޤ�����褦�ˤʤä��Τǡ��դκ�Ȥ�ɬ�פˤʤä��Ȥ������Ȥ���
������󡢻����� DB ���ä��Ȥ��� CREATE TABLE ��ƥ����ȥ��ǥ����Ǽ�ñ¤¤ï¿½ï¿½ï¿½ï¿½ï¿½Î¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Î¸ï¿½ CREATE TABLE ��ư�������륹����ץȤ��ä��ꡢ�����������ߤ� GUI �Υġ�������Ѥ���Ȥ����������������夤�Ƥ��롣�䤬�����Τϥơ��֥��15����30���٤ξ����Ϥ� DB �ʤΤǡ�����ǽ�ʬ�Ѥ��Ѥ�Ǥ��ޤ���
�虜�虜 SQL ����Ȥ����ˡ�SQL Server �� DTS (Data Transformation Service - �ǡ����Ѵ������ӥ�) ��ž��������Ѥ��Ѥ�Ǥ��ޤ����⤢�롣�������ץ졼��ƥ����ȤΥ�����ץȤˤ���Ȥ������Ȥϡ����ʥåץ���åȤȤ�����¸�����ꡢSubversion �� PVCS��VSS �ʤɤ����ѤΥС����������ġ�������������Ǥ���Ȥ������Ȥ���������ç¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½SQL Server �� VisualStudio + VSS �ȶ�̩��Ϣ�Ȥ��뤳�Ȥ�Ǥ��뤬�������Фι����ʤɤˤ�äƤϤ�����ˡ��Τ�ʤ����Ȥ�¿�����ᡢ������ץȲ������ˤ��꤬������ǽ����
- SQL ������ץ������μ��
Enterprise Manager �� �ǡ����١������֥������Ȥ򱦥���å�����SQL ������ץ�������������SQL ������ץ�����������ɥ��פ�ɽ�������Τǡ��оݥ��֥������Ȥ䥪�ץ�������ꤹ�롣
�ʲ������ץ����Υ�⡣
���ϥ����å��ܥå����Υ����å�����򡢢��ϥ��դ�ɽ����
���ϥ饸���ܥ���Υ����å�����򡢡��ϥ��դ�ɽ����
- �����̡ץ��� ������ץȲ����륪�֥������Ȼ���
���ܤ������֥������Ȥ� SQL ������ץȲ����롣ȴ����������ݤ��Τǡ������֥������ȤΥ�����ץ�(O) ������Ū�˻��ꤹ��Τ��褤���������֥������ȤΥ�����ץ�(O)
�����ơ��֥�(T)
�����ӥ塼(W)
�������ȥ��� �ץ���������(P)
�����ǥե����(D)
�����롼��(U)
�����桼��������ǡ�����(Y)
�����桼��������ؿ�(F)
- �ֽ񼰡ץ��� ������ץȽ񼰥��ץ����
�֤��٤Ƥν�°���֥������Ȥ��Ф��ƥ�����ץȤ�����(E)�פϺ���ɬ�פʤ��Τǥ��դˤ�����������ץ� ���ץ�������Ѥ��ơ����֥������� ������ץȤ����������ˡ�����Ǥ��ޤ���
�����֥������Ȥ��Ȥ� CREATE <object> ���ޥ�ɤ�����(C)
�����֥������Ȥ��Ȥ� DROP <object> ���ޥ�ɤ�����(D)
�����٤Ƥν�°���֥������Ȥ��Ф��ƥ�����ץȤ�����(E)
��������ץ� �ե�����������ѥإå�����ޤ��(I)
����ĥ�ץ��ѥƥ���ޤ��(X)
��7.0 �ߴ��ε�ǽ�Τߥ�����ץȤ����(O)
������ץ� �ե�����������ѥإå�����ޤ��(I)�򥪥�ˤ��Ƥ����ȡ��оݥ��֥������Ȥ�̾���ȸ��ߤ����դ򥳥��ȤȤ����������Ƥ���롣�ʲ��Τ褦�ʴ�������/****** ���֥������� : ���ȥ��� �ץ��������� dbo.P_GetLandscapeCustomers ������ץ����� : 2006/08/23 12:43:12 ******/�ץƥ����Ȥκ�ʬ��Ȥ���˼���ˤʤ���ϥ��դˤ���Ф�����
�ֳ�ĥ�ץ��ѥƥ���ޤ��פ򥪥�ˤ��Ƥ����ȡ�EnterpriseManager �Υơ��֥�ǥ����ʤ��ղä��������(��)�ؤ����������Ȥ�ޤ�ƥ�����ץȤ��������Ƥ���롣
- �֥��ץ����ץ��� ������ץȺ������ץ����
���������å����󡣤��������֥ǡ����١��� ������ץ�(C)�פϥǡ����١����ե����� (.mdf) �� �ȥ�󥶥����������ե����� (.ldf) �����Хѥ���ϡ��ɥ����ɤ��Ƥ��ޤ������Τ��ᡢ�ѥ����ۤʤ�Ķ��Ǽ¹Ԥ�����ϥ����å��򥪥դˤ��뤫��������ץ���Υѥ�����������������Ȥ롣���ǡ����١��� ������ץ�(C)
���ǡ����١��� �桼�����ȥǡ����١��� ������ ������ץ�(S)
��SQL Server �������� (Windows �� SQL Server ��������) ������ץ�(L)
�����֥������� ��٥븢�¥�����ץ�(M)
�ơ��֥� ������ץȺ������ץ����
������ǥå��� ������ץ�(X)
���ե�ƥ����� ����ǥå��� ������ץ�(I)
���ȥꥬ ������ץ�(R)
���ç¥ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ç¥Õ¥ï¿½ï¿½ï¿½È¤ï¿½ CHECK ���󥹥���ץ�(K)
�ե����� ���ץ����
���ե����� �ե����ޥå�
��MS-DOS �ƥ����� (OEM)(D)
��Windows �ƥ����� (ANSI)(W)
�����󥿡��ʥ���ʥ� �ƥ����� (Unicode)(U)
��������ե�����
��1 �ե�����˺���(F)
�����֥������Ȥ��Ȥ˥ե��������(B)
* �ʥ����ë¥ï¿½ï¿½ï¿½ï¿½ê¥µï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½È¥ï¿½ï¿½ï¿½
���ε�����ľ���URL: Permlink | ���ε�����°���륫�ƥ���: [SQL] [Postgres] [MS SQL Server]
- �ʥ����ë¥ï¿½ï¿½
�ܵҥ����ɤʤɤΡ��ӥ��ͥ��ˤ����Ƽ�����ȯ�����ë¥ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½È¤â¤¤ï¿½ï¿½ï¿½ï¿½- ���������ȥ���
�쥳���ɤ��դ����ꤹ�뤿��˥����ƥब����Ф������������ǥ�ƥ��ե����� (Identifier) �Ȥ⤤����Postgres ���ä��饷�ꥢ�뷿��MS SQL Server ���ä��� IDENTITY ��Ȥ��Τ���ñ���פ���ˡ��ܵҥ����ɤȤ��̤˥����ƥ�ǿ���Ф� ID ���Ǽ���륫������Ȥ������ȡ�����������������������Ȥ��ˤ⡢���������ȥ���������Ȥ���
- �ʤ����������ȥ�����Ȥ������ɤ��Τ�
ȯ����: 2004/06
amazon �Ǿܤ������� bk1�Ǿܤ�������
Web+DB Press �� Vol.21 �˾ܤ����񤤤Ƥ��롣
�ܵҥ����ɤΥե����ޥåȤ��Ѥ�뤫�⤷��ʤ����顣�Ѥ�äƤ��ޤä���硢DB �κ��߷פ�ɬ�פ��ä��ꡢ�ǡ�����������������줿�ꡢ���Υǡ����Ȥ���Ӥ��Ǥ��ʤ��ʤä��ꤹ�롣
- �����ƥ�¦�ǿ���Ф���������Ȥ��ȶ�����줿�ʤ�
���������� DB �߷פ򤷻Ϥ᤿�����֥����ƥ�¦��ɬ�������򿶤�Ф��פ�º�ɤ������ڤ��鶵����줿�ʤ������ΤȤ��ϥ��������ȥ����Ȥ������դǤϤʤ����֥����ƥ�¦�ǿ���Ф������פȤ���ɽ�����ä����ɡ�����ʸ塢�ܵҥ����ɤʤɤ����äƤ⥷���ƥ�¦�ǿ���Ф���ˡ����� ID ���Ǽ���륫����Ȥ��褦�ˤʤä���
- ����
���Υ��� L'eclat des jours(2005-01-07) http://arton.no-ip.info/diary/20050107.html#p01 �˿�ȯ����ƽ񤤤���* DATETIME��/TIMESTAMP����Ÿ���� WHERE����ϰϻ���
���ε�����ľ���URL: Permlink | ���ε�����°���륫�ƥ���: [SQL] [MS SQL Server] [Postgres]
���Ȥ��С� time_column < '2004-08-27' �ΤȤ���'2004-08-27' �� ���Ĥλ�����ؤ��Τ���2004-08-27 00:00:00 �ʤΤ��� 2004-08-27 **:**:** ���Ĥޤ������ʤΤ������Ĥ�ϻ�ʬ�äޤǻ��ꤷ�Ƥ����Τǡ���ά����ɽ���������Ϥɤ��ʤ뤫Ĵ�٤Ƥ�������
- SQL Server2000 ��
���ջ���ǡ����λ���http://www.microsoft.com/japan/msdn/library/ja/acdata/ac_8_c ...
��������ޤ������դ�������̤˳�Ǽ����ǡ������Ϥ���ޤ���datetime ���ޤ��� smalldatetime �����ͤ����ꤹ���硢�����������ꤹ��ȡ����դΥǥե���� "January 1, 1900" �����Ѥ���ޤ������դ�������ꤹ��ȡ�����Υǥե���� "12:00AM (����)" �����Ѥ���ޤ���
�פ���� SQL Server2000 �Ǥϡ�00:00:00 �ˤʤ�äƤ��Ȥ���
- PostgreSQL 7.2.1 �ξ�硣
�ɥ�����Ȥϸ��Ĥ����ʤ��ä�������PostgreSQL�桼������: PostgreSQL 7.2.X ��°�ɥ������
http://www.postgresql.jp/document/pg721doc/
7.4 �����ʸ��⸫�Ƥߤ�������Ϥ����Τʵ��Ҥϸ��Ĥ����ʤ��ä���
����PostgreSQL�桼����: PostgreSQL 7.4.X ��°�ɥ������
http://www.postgresql.jp/document/pg743doc/
�ޤ������θ��äƤߤ�Ф狼������������֤� SQL Server2000 ��Ʊ����̤ˤʤ�Ȼפ����ɡ�
- CREATE TABLE
SQL Server2000 �ѡ�CREATE TABLE time_where_test (utime datetime);
PostgreSQL 7.2.1 �ѡ�
CREATE TABLE time_where_test (utime timestamp);
- INSERT ����Ÿ��
�ޤ��� INSERT �Υƥ��ȡ�������������ȡ�SQL Server2000 �� PostgreSQL 7.2 �Ȥ�� 'YYYY-MM-DD' �� 'YYYY-MM-DD 00:00:00:000' ��Ÿ������롣�ʲ�������ץ롣
PostgreSQL 7.2.1 �Ǥ� SQL Server2000 �Ǥ�Ʊ����̤ˤʤä����ʲ���Postgres �ν��Ϸ�̡�
hiroaki=> INSERT INTO time_where_test VALUES ('2004-06-18');
INSERT 93862442 1
hiroaki=> SELECT * FROM time_where_test;
utime
---------------------
2004-06-18 00:00:00
(1 row)
- SELECT ����Ÿ��
���٤� SELECT ���Υƥ��ȡ������餯 INSERT ����Ʊ���褦��Ÿ���������������ɡ�ǰ�Τ��ᡣ���ä��Υơ��֥�� DROP ���� CREATE ���ʤ�����8�쥳����ʬ�Υƥ��ȥǡ����� INSERT ���롣
INSERT INTO time_where_test VALUES ('2004-08-09 02:00:00');
INSERT INTO time_where_test VALUES ('2004-08-20 03:00:00');
INSERT INTO time_where_test VALUES ('2004-08-26 00:00:00');
INSERT INTO time_where_test VALUES ('2004-08-26 04:00:00');
INSERT INTO time_where_test VALUES ('2004-08-26 23:59:59');
INSERT INTO time_where_test VALUES ('2004-08-27 00:00:00');
INSERT INTO time_where_test VALUES ('2004-08-27 09:00:00');
INSERT INTO time_where_test VALUES ('2004-08-27 23:59:59');
INSERT ������ä��� SELECT ���Ƥߤ롣���٤� SQL Server2000 �Ǥν��ϡ�
SELECT * FROM time_where_test WHERE utime < '2004-08-26' ORDER BY utime;
utime
------------------------------------------------------
2004-08-09 02:00:00.000
2004-08-20 03:00:00.000
(2 ���������ޤ���)
ͽ���̤ꡢ2004-08-26 �� 2004-08-26 00:00:00 ��Ÿ�����줿��
����������դ����8/26�Υ쥳���ɤ�ҥåȡ�
SELECT * FROM time_where_test WHERE utime <= '2004-08-26' ORDER BY utime;
utime
------------------------------------------------------
2004-08-09 02:00:00.000
2004-08-20 03:00:00.000
2004-08-26 00:00:00.000
(3 ���������ޤ���)
Postgres �Ǥ�Ʊ���褦��ư�����
* �ץ�����ޤΤ����SQL ��2��
���ε�����ľ���URL: Permlink | ���ε�����°���륫�ƥ���: [��] [SQL]
���硼 ���륳 / Joe Celko / ���� ����
ȯ����: 2001/04
amazon �Ǿܤ������� bk1�Ǿܤ�������
SQL ���ѷи�����ǯ�ʾ�ν��Ԥ������Ը������ܤȤΤ��ȡ�
* SQL �� COALESCE
���ε�����ľ���URL: Permlink | ���ε�����°���륫�ƥ���: [SQL] [Postgres] [MS SQL Server]
- COALESCE ��ե����
PostgreSQL 7.3.4 �桼�������� Chapter 6. �ؿ��ȱ黻�� ��Phttp://www.postgresql.jp/document/pg734doc/user/functions-co ...
6.12.2. COALESCE
COALESCE(value [, ...])
COALESCE �ؿ��ϡ�NULL �Ǥʤ����Ȥκǽ�ΰ������֤��ޤ��� �ǡ�����ɽ������Ū�Ǽ��Ф��ݡ�NULL �ͤ�����˥ǥե�����ͤ�Ȥ���硢���Ȥ��������ʤ��Ȥ�����ޤ��� ������Ǥ���
SELECT COALESCE(description, short_description, '(none)') ...
COALESCE
http://www.microsoft.com/japan/msdn/library/ja/tsqlref/ts_ca ...
- COALESCE �Υ��ڥ뤬�Ф����ʤ�
�Ȥ����ǡ���� COALESCE �Υ��ڥ뤬�ʤ����Ф����ʤ����ᡢ���ε�����񤤤���COLESE �Ȥ� COALESE �Ȥ� COLESCE �ʤɤȽ񤤤Ƥ��ޤ���ʸˡ���顼�ˤʤ뤳�Ȥ�¿���ä����Ƕ�Ǥ� MS SQL Server ��°�Υ����ꥢ�ʥ饤���� SQL ��񤯤褦�ˤʤꡢ������ɿ��Ť��β��ä������褦�ˤʤä�����ְ㤤�����ä����ɡ�����Ǥ����˺��뤳�Ȥ����äơ����ΤȤ��ϥ����ꥢ�ʥ饤���δ鿧��Ǥ��ʤ��饿���פ��Ƥ��롣������ɤ˿����դ��������򥹥ڥ롢�����դ��ʤ��ä���ְ㤤���ڥ�����ޤ��˴鿧��ǤäƤ봶������COALESCE ��ȯ���ϡ֤������줹�פʤ�����ɡ��֤��פΤȤ����� SCE �ˤʤäƤ��뤳�Ȥ��Ф����ʤ��������Ȼפ����ǽ�ϡ֤����꡼���פȸ��ɤ��Ƥ������Ȥ⥹�ڥ�ߥ��θ������⡣
coalesce goo ���¼�ŵ
http://dictionary.goo.ne.jp/search.php?MT=coalesce&kind= ...
* SQL �ǤΥ��������� ' �� LIKE
���ε�����ľ���URL: Permlink | ���ε�����°���륫�ƥ���: [SQL]
- SQL �Ǥϥ��������פ��ʤ���Фʤ�ʤ�ʸ�������롣
����ϡ�MS SQL Server �Ǥ�ʸˡ���⤹�롣Postgres �Ǥ�ʸˡ�ϡ��ʲ��򻲾ȡ�
[pgsql-jp: 26535] % �ǻϤޤ�ʸ���� LIKE ����
http://ml.postgresql.jp/pipermail/pgsql-jp/2002-June/001677. ...
PostgreSQL 7.3.2 �桼�������� Chapter 6. �ؿ��ȱ黻��
http://search.net-newbie.com/pgsql/functions-matching.html
- ' ����������
��������� ' �������硢' ���ղä��롣��)
�����꤬ I'll be back �ΤȤ�
SELECT * FROM table WHERE string = 'I''ll be back';
- LIKE �ǻȤ���᥿ʸ���Υ���������
��������˰ʲ���ʸ���󤬤����硢# ���ղä��롣% (�ѡ������)
_ (���������)
[ (�ѥ��å�)
] (�ѥ��å�)
^ (�ϥå�)
# (����������ʸ�����Τ򥨥������פ���ˤϡ�Ʊ��ʸ����³����)
# ���������̣���äˤʤ���¾��ʸ���ǥ��������פ�������С� ESCAPE ��ǻ���Ǥ��롣
ESCAPE '#'
��)
�����꤬ 100% �ΤȤ���
LIKE '%100#%%' ESCAPE '#'
�����꤬ 100# �ΤȤ���
LIKE '%100##%' ESCAPE '#'
�����꤬ K's dining #100 �ΤȤ�
LIKE '%K''s dining ##100%' ESCAPE '#'
- �ƥ��Ȥ˻Ȥä� SQL
CREATE TABLE esc (string VARCHAR(100));INSERT INTO esc (string) VALUES ('100%');
INSERT INTO esc (string) VALUES ('it is ');
INSERT INTO esc (string) VALUES ('%');
INSERT INTO esc (string) VALUES ('%%%');
INSERT INTO esc (string) VALUES ('[');
INSERT INTO esc (string) VALUES (']');
INSERT INTO esc (string) VALUES ('^');
INSERT INTO esc (string) VALUES ('^ff');
INSERT INTO esc (string) VALUES ('10_');
INSERT INTO esc (string) VALUES ('_');
INSERT INTO esc (string) VALUES ('others');
INSERT INTO esc (string) VALUES ('ɽ');
INSERT INTO esc (string) VALUES ('#1');
SELECT string FROM esc;
SELECT string FROM esc WHERE string LIKE '%#%';
SELECT string FROM esc WHERE string LIKE '%##%' ESCAPE '#';
* MS-SQL Server �Ǥ����շ׻�
���ε�����ľ���URL: Permlink | ���ε�����°���륫�ƥ���: [SQL]
- ���������դ���ĥ쥳���ɤ� SELECT ���� Transact SQL��
SELECT product_id FROM product
WHERE CONVERT(CHAR(10), product.last_update, 111) =
CONVERT(CHAR(10), DATEADD(DAY, -1, CURRENT_TIMESTAMP), 111);
* UPSERT / MERGE ����ȥꥬ MS SQL Server 2000��
���ε�����ľ���URL: Permlink | ���ε�����°���륫�ƥ���: [SQL] [MS SQL Server]
- ����
GO
DROP TRIGGER log_transaction_ao;
GO
CREATE TRIGGER log_transaction_ao ON users FOR INSERT, UPDATE AS
BEGIN
INSERT INTO users_log SELECT * FROM inserted
IF (SELECT COUNT(*) FROM inserted WHERE commit_master = 1) > 0 BEGIN
DECLARE @user_cd VARCHAR(5)
SELECT @user_cd = user_cd FROM deleted
IF (@user_cd IS NOT NULL) BEGIN
DELETE FROM user_master WHERE user_cd = @user_cd
END
INSERT INTO user_master SELECT * FROM inserted
END
END
- �ʷ���
GO
DROP TRIGGER log_transaction_users;
GO
CREATE TRIGGER log_transaction_users ON ao FOR INSERT, UPDATE AS
BEGIN
INSERT INTO user_log SELECT * FROM inserted
IF (SELECT COUNT(*) FROM inserted WHERE commit_master = 1) > 0 BEGIN
DELETE FROM user_master WHERE user_cd IN (SELECT user_cd FROM deleted)
INSERT INTO user_master SELECT * FROM inserted
END
END
* �ȥꥬ�ˤ��ǡ����Υϥ�ɥ��
���ε�����ľ���URL: Permlink | ���ε�����°���륫�ƥ���: [SQL] [MS SQL Server]
- �ȥꥬ��Ȥ����Ȥǡ�INSERT/UPDATE ʸ��ʣ���Υơ��֥�ˤ��Τޤ�ȿ�Ǥ����뤳�Ȥ��Ǥ��롣
- �֥桼�������Ϥ������Ƥ�������ꤿ���פȤ����ꥯ�����Ȥ�����������֤Υơ��֥���ꤲ��줿�������Ʊ��������������Ѱդ��������ѤΥơ��֥���ɵ����Ƥ������Ȥ���������Ǽ¸��Ǥ����������
�ޤ����ޥ͡����㤫��ϡ��֥ץ������¦��ʣ���Υơ��֥�� SQL ���ꤲ��ΤϤ�餻�����ʤ���������ꤹ�뤪���줬���롣�������Ȥߤ���ʤ����ͤ��ƤߤƤ��졣�פȤ�����Ƥ��롣- ����
����ѥơ��֥�ȥޥ������ơ��֥�ȥ����ѥơ��֥���Ѱդ��롣�����ѥơ��֥�Υơ��֥�����ϡ��ޥ������ơ��֥�ȴ���Ū��Ʊ��������
��ˡ������󡢻�������������ʤɤϻ��ꤷ�ʤ��褦�ˤ��롣
�����ѥơ��֥�˰ʲ��Τ褦�� INSERT/UPDATE �ȥꥬ�򥻥åȤ��롣
OLD �ü�ơ��֥�򻲾Ȥ����������Ƥ�����ѥơ��֥�� INSERT ���롣
MS SQL Server �Ǥϡ�OLD �ơ��֥�� inserted �ȸƤФ�Ƥ��롣
postgres �ʤɤȤ�̾�����㤦�����ǡ���ǽ���Ѥ��ʤ��褦����
������Postgres �ϥȥꥬ��ȯư�����ߥ󥰤����Ǥ��뤬��
MS SQL Server 2000 �Ǥϻ���Ǥ��ʤ����ȥꥬ��ȯư����Τϡ���������å��ʤɤθ��������
�������Ȼפä��顢MS SQL Server 2000 �ˤ������ȯư����ȥꥬ�����뤽���ʡ�
INSTEAD OF �ȥꥬ�Ȥ�����Τǡ�����λ���ȯư�ȥꥬ�� AFTER �ȥꥬ�ȸƤ֤ȤΤ��ȡ�
- ����ץ�
-- log �ơ��֥�ؤ�̵���� INSERT ���롣-- master �ơ��֥�ؤϡ�commit_master ����ब1�λ��Τ� DELETE & INSERT ���롣
INSERT INTO user_master SELECT * FROM inserted �Ǥϡ�inserted ��ʣ���쥳���ɤǤ⤹�٤� INSERT ���Ƥ���롣
DROP TRIGGER log_transaction_user;
CREATE TRIGGER log_transaction_user ON user FOR INSERT, UPDATE AS
BEGIN
INSERT INTO user_log SELECT * FROM inserted
IF (SELECT COUNT(*) FROM inserted WHERE commit_master = 1) > 0 BEGIN
DECLARE @user_cd VARCHAR(5)
SELECT @user_cd = user_cd FROM inserted
DELETE FROM user_master WHERE user_cd = @user_cd
INSERT INTO user_master SELECT * FROM inserted
END
END
* �ǡ����١������ɤ߹��ߤ�֥��å����뤿��Υ��å�
���ε�����ľ���URL: Permlink | ���ε�����°���륫�ƥ���: [SQL]
���θ塢���ѺѤߥե饰��Ω�Ƥ�Ȥ���������ͤ��롣
�Ķ��� PostgreSQL 7.2.1 �����ꡣ
��������ϡ�SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
��ñ��˥ȥ�󥶥�������٥��夲�Ƥ��н�Ǥ��ʤ���
1: BEGIN;
2: SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
3: SELECT id, data FROM table WHERE flag = FALSE;
4: ------ ���ץꥱ�������ν��� ------
5: UPDATE table SET flag = FALSE;
6: COMMIT;
������ȡ�3 �� SELECT ������ä�����̤Υȥ�󥶥�����󤬳��Ϥ�����硢
����ͽ��ιԤ� SELECT ���ɤ߹��ޤ�Ƥ��ޤ���
��̡�Ʊ���Ԥ� SELECT ���Ƥ��ޤ������θ� 5 ��UPDATE ��ȯ�Ԥ��褦�Ȥ���������
SERIALIZABLE ��ʬΥ�����å��˰��ä����ꡢ2���ܤΥȥ�󥶥������ϥ��ܡ��Ȥ��Ƥ��ޤ���
ERROR: Can't serialize access due to concurrent update
���顼��ȯ���������˽�����Ԥ�����ˤϡ������ȥ�󥶥����������ǤϤʤ�
���ȥȥ�󥶥�������֥��å����ʤ���Фʤ�ʤ���
�Ĥޤꡢ��������ϥȥ�󥶥�������٥������Ǥϲ��Ǥ��ʤ���
- ��褹��ˤϡ�LOCK ʸ�ǹԤޤ��ϥơ��֥����å�����ɬ�פ����롣
LOCK TABLE table IN ACCESS EXCLUSIVE MODE;ACCESS EXCUSIVE MODE �ǥ��å����뤳�Ȥǡ�SELECT ʸ���Τ�֥��å�����롣
1: BEGIN;
2: LOCK TABLE table IN ACCESS EXCLUSIVE MODE;
3: SELECT id, data FROM table WHERE flag = FALSE;
4: ------ ���ץꥱ�������ν��� ------
5: UPDATE table SET flag = FALSE;
6: COMMIT;
- ����ץ�
BEGIN TRANSACTION;LOCK TABLE uniq_uri IN ACCESS EXCUSIVE MODE;
SELECT TOP 1 uri FROM uniq_uri WHERE digit = 5 AND last_update IS NULL;
COMMIT TRANSACTION;
- ����:
PostgreSQL 7.3.2 �桼�������� Chapter 9. Ʊ���¹�����http://www.postgresql.jp/document/pg732doc/user/mvcc.html
[pgsql-jp: 29112] Ʊ�����������棲
http://ml.postgresql.jp/pipermail/pgsql-jp/2003-February/004 ...
* VARCHAR(n) ��ʸ�����äƥޥ���Х����б�?
���ε�����ľ���URL: Permlink | ���ε�����°���륫�ƥ���: [SQL]
* �ơ��֥�������������
���ε�����ľ���URL: Permlink | ���ε�����°���륫�ƥ���: [SQL]
����������: �ç¥ï¿½ï¿½ï¿½È¤Ê¤ï¿½ï¿½ï¿½ï¿½ï¿½Í¤ï¿½ï¿½ï¿½Þ¤ï¿½Ð¡ï¿½ï¿½ï¿½ï¿½Î¤ï¿½ï¿½ï¿½Â¾ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Í¤ï¿½ï¿½ï¿½Þ¤ë¡£
�軰������: �ç¥ï¿½ï¿½ï¿½Ê³ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Í¤Ë¤ï¿½Ã¤Æ¡ï¿½Â¾ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Í¤ï¿½ï¿½ï¿½Þ¤ë¤³ï¿½È¤ï¿½ï¿½Ê¤ï¿½ï¿½ï¿½
���ޤǤϡ֤�����߷פ��㹹������Ȥ������Ѥ�����ơ��֥��ʬ���Ƥ������פȤ��������ǥơ��֥��ʬ���ԤäƤ���������������Τ�����Τ�Ȥ��߷פǤ��롣�Ȥ����������ޤޤǴ��Ǥ�äƤ��äƤ��Ȥ�����������
* n ���������դ���� SQL
���ε�����ľ���URL: Permlink | ���ε�����°���륫�ƥ���: [SQL] [Postgres]
��) 2002ǯ12��3����7��������롣
# SELECT to_date(now() + '-7day', 'YYYY-MM-DD');�������ʬ�Ϥɤ��ʤ뤫�ϡ���Ƥߤ�ɬ�פ��ꡣ
to_date
------------
2002-11-26
(1 row)
00:00:00 �ˤʤ�Τ���SELECT ��������ˤʤ�Τ��ϡ�������¸?
����Ȥ⡢SQL �ε��ʤǷ�ޤäƤ�Τ���?
* SQL �� NATURAL LEFT OUTER JOIN ʸ
���ε�����ľ���URL: Permlink | ���ε�����°���륫�ƥ���: [SQL]
- OUTER JOIN ����Ȥ���NATURAL ����ꤹ��С�ON ��ǥ����̾���������ʤ��ƺѤࡢ�Ȥ������Ǥ�äƤߤ��Τ����������٤���
�����̾�ǻ���: Total runtime: 1727.18 msec
NATURAL �ǻ���: Total runtime: 3849.53 msec
�ܶ᤯�٤��ʤäƤ롣NATURAL ���ȡ��ɤΥ����� JOIN �Ǥ��뤫�ɤ�����õ�����뤿���٤��ʤäƤ���Τ����������ʲ��� EXPLAIN ANALYZE �η�̤�ܤ��Ƥ�����
- �����̾�ǻ��ꤷ���Ȥ��� SQL : Total runtime: 1727.18 msec
Unique (cost=31062.45..31092.26 rows=92 width=260) (actual time=1675.56..1723.79 rows=150 loops=1)
-> Sort (cost=31062.45..31062.45 rows=918 width=260) (actual time=1675.42..1675.88 rows=156 loops=1)
-> Merge Join (cost=30950.59..31017.30 rows=918 width=260) (actual time=442.96..474.64 rows=156 loops=1)
-> Index Scan using summary_pkey on summary (cost=0.00..52.00 rows=1000 width=80) (actual time=0.27..0.27 rows=0 loops=1)
-> Sort (cost=30950.59..30950.59 rows=918 width=180) (actual time=442.35..443.03 rows=156 loops=1)
-> Hash Join (cost=4.90..30905.44 rows=918 width=180) (actual time=15.61..439.20 rows=156 loops=1)
-> Merge Join (cost=0.00..30884.49 rows=918 width=123) (actual time=8.90..423.29 rows=156 loops=1)
-> Index Scan using sysqa_pkey on account (cost=0.00..30826.80 rows=578 width=115) (actual time=7.38..339.52 rows=32 loops=1)
SubPlan
-> Materialize (cost=26.48..26.48 rows=8 width=4) (actual time=0.01..0.09 rows=32 loops=1157)
-> Index Scan using doc_property_system_code on doc_property (cost=0.00..26.48 rows=8 width=4) (actual time=1.00..3.66 rows=32 loops=1)
-> Index Scan using doc_property_serialnum on doc_property (cost=0.00..40.19 rows=1835 width=8) (actual time=0.93..61.53 rows=1703 loops=1)
-> Hash (cost=4.52..4.52 rows=152 width=57) (actual time=6.33..6.33 rows=0 loops=1)
-> Seq Scan on system_name (cost=0.00..4.52 rows=152 width=57) (actual time=0.33..4.38 rows=152 loops=1)
- NATURAL �ǻ��ꤷ���Ȥ��� SQL: Total runtime: 3849.53 msec
Unique (cost=31070.42..31100.24 rows=92 width=292) (actual time=3800.17..3846.17 rows=150 loops=1)
-> Sort (cost=31070.42..31070.42 rows=918 width=292) (actual time=3800.02..3800.45 rows=156 loops=1)
-> Merge Join (cost=31020.42..31025.27 rows=918 width=292) (actual time=2382.34..2412.63 rows=156 loops=1)
-> Sort (cost=30950.59..30950.59 rows=918 width=180) (actual time=2381.23..2381.78 rows=156 loops=1)
-> Hash Join (cost=4.90..30905.44 rows=918 width=180) (actual time=15.27..438.47 rows=156 loops=1)
-> Merge Join (cost=0.00..30884.49 rows=918 width=123) (actual time=8.46..422.62 rows=156 loops=1)
-> Index Scan using sysqa_pkey on account (cost=0.00..30826.80 rows=578 width=115) (actual time=7.18..339.89 rows=32 loops=1)
SubPlan
-> Materialize (cost=26.48..26.48 rows=8 width=4) (actual time=0.01..0.07 rows=32 loops=1157)
-> Index Scan using doc_property_system_code on doc_property (cost=0.00..26.48 rows=8 width=4) (actual time=0.81..3.46 rows=32 loops=1)
-> Index Scan using doc_property_serialnum on doc_property (cost=0.00..40.19 rows=1835 width=8) (actual time=0.72..60.75 rows=1703 loops=1)
-> Hash (cost=4.52..4.52 rows=152 width=57) (actual time=6.39..6.39 rows=0 loops=1)
-> Seq Scan on system_name (cost=0.00..4.52 rows=152 width=57) (actual time=0.32..4.41 rows=152 loops=1)
-> Sort (cost=69.83..69.83 rows=1000 width=112) (actual time=0.74..0.74 rows=0 loops=1)
-> Seq Scan on summary (cost=0.00..20.00 rows=1000 width=112) (actual time=0.02..0.02 rows=0 loops=1)