Selasa, 29 Desember 2009

Foreign Key in My SQL

InnoDB supports foreign key constraints. The syntax for a foreign key constraint definition in InnoDB looks like this:

[CONSTRAINT [symbol]] FOREIGN KEY
[index_name] (index_col_name, ...)
REFERENCES tbl_name (index_col_name,...)
[ON DELETE reference_option]
[ON UPDATE reference_option]

reference_option:
RESTRICT | CASCADE | SET NULL | NO ACTION


index_name represents a foreign key ID. If given, this is ignored if an index for the foreign key is defined explicitly. Otherwise, if creates an index for the foreign key, it uses index_name for the index name.
Foreign keys definitions are subject to the following conditions:
  • Both tables must be tables and they must not be TEMPORARY tables.
  • Corresponding columns in the foreign key and the referenced key must have similar internal data types insideInnoDB so that they can be compared without a type conversion. The size and sign of integer types must be the same. The length of string types need not be the same. For nonbinary (character) string columns, the character set and collation must be the same.
  • InnoDB requires indexes on foreign keys and referenced keys so that foreign key checks can be fast and not require a table scan. In the referencing table, there must be an index where the foreign key columns are listed as the first columns in the same order. Such an index is created on the referencing table automatically if it does not exist. (This is in contrast to some older versions, in which indexes had to be created explicitly or the creation of foreign key constraints would fail.) index_name, if given, is used as described previously.
  • InnoDB allows a foreign key to reference any index column or group of columns. However, in the referenced table, there must be an index where the referenced columns are listed as the columns in the same order.
  • Index prefixes on foreign key columns are not supported. One consequence of this is that BLOB and TEXT columns cannot be included in a foreign key because indexes on those columns must always include a prefix length.
  • If the CONSTRAINT symbol clause is given, the symbol value must be unique in the database. If the clause is not given, InnoDB creates the name automatically.
InnoDB rejects any INSERT or UPDATE operation that attempts to create a foreign key value in a child table if there is no a matching candidate key value in the parent table. The action InnoDB takes for any UPDATE or DELETE operation that attempts to update or delete a candidate key value in the parent table that has some matching rows in the child table is dependent on the specified using ON UPDATE and ON DELETE subclauses of the FOREIGN KEY clause. When the user attempts to delete or update a row from a parent table, and there are one or more matching rows in the child table, InnoDB supports five options regarding the action to be taken. If ON DELETE or ON UPDATE are not specified, the default action is RESTRICT.
  • CASCADE: Delete or update the row from the parent table and automatically delete or update the matching rows in the child table. Both ON DELETE CASCADE and ON UPDATE CASCADE are supported. Between two tables, you should not define several ON UPDATE CASCADE clauses that act on the same column in the parent table or in the child table.

    Note

    Currently, cascaded foreign key actions to not activate triggers.
  • SET NULL: Delete or update the row from the parent table and set the foreign key column or columns in the child table to NULL. This is valid only if the foreign key columns do not have the NOT NULL qualifier specified. Both ON DELETE SET NULL and ON UPDATE SET NULL clauses are supported.
    If you specify a SET NULL action, make sure that you have not declared the columns in the child table as NOT NULL.
  • NO ACTION: In standard SQL, NO ACTION means no action in the sense that an attempt to delete or update a primary key value is not allowed to proceed if there is a related foreign key value in the referenced table. InnoDB rejects the delete or update operation for the parent table.
  • RESTRICT: Rejects the delete or update operation for the parent table. Specifying RESTRICT (or NO ACTION) is the same as omitting the ON DELETE or ON UPDATE clause. (Some database systems have deferred checks, andNO ACTION is a deferred check. In MySQL, foreign key constraints are checked immediately, so NO ACTION is the same as RESTRICT.)
  • SET DEFAULT: This action is recognized by the parser, but InnoDB rejects table definitions containing ON DELETE SET DEFAULT or ON UPDATE SET DEFAULT clauses.
InnoDB supports foreign key references within a table. In these cases, “child table records” really refers to dependent records within the same table.
Here is a simple example that relates parent and child tables through a single-column foreign key:

CREATE TABLE parent (id INT NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB;

CREATE TABLE child (id INT, parent_id INT,
INDEX par_ind (parent_id),
FOREIGN KEY (parent_id) REFERENCES parent(id)
ON DELETE CASCADE
) ENGINE=INNODB;


A more complex example in which a product_order table has foreign keys for two other tables. One foreign key references a two-column index in the product table. The other references a single-column index in the customertable:

CREATE TABLE product (category INT NOT NULL, id INT NOT NULL,
price DECIMAL,
PRIMARY KEY(category, id)) ENGINE=INNODB;

CREATE TABLE customer (id INT NOT NULL,
PRIMARY KEY (id)) ENGINE=INNODB;

CREATE TABLE product_order (no INT NOT NULL AUTO_INCREMENT,
product_category INT NOT NULL,
product_id INT NOT NULL,
customer_id INT NOT NULL,
PRIMARY KEY(no),
INDEX (product_category, product_id),
FOREIGN KEY (product_category, product_id)
REFERENCES product(category, id)
ON UPDATE CASCADE ON DELETE RESTRICT,
INDEX (customer_id),
FOREIGN KEY (customer_id)
REFERENCES customer(id)) ENGINE=INNODB;

source mysql.com

Kamis, 24 Desember 2009

Propaganda Amerika Serikat

Gedung bioskop XXI di salah satu mal di Bogor sudah dipenuhi oleh para penonton film 2012. Sulit dimengerti mengapa orang-orang Indonesia tiba-tiba seperti tersihir menonton film ini.

Waktu menunjukan pukul 15.15 WIB. Film 2012 pun muncul di layar. Adegan pertama menceritakan sebuah penemuan ilmiah terkait ledakan di matahari. Ledakan itu mempengaruhi kondisi di bumi, bahkan di kerak bumi. Berdasarkan penemuan ilmiah itu diperkirakan kiamat akan terjadi di tahun 2012.

Informasi itu segera disampaikan ke Presiden Amerika Serikat. Singkat cerita, Amerika Serikat segera mengajak negara-negara kaya lainnya untuk melakukan misi penyelamatan dari kiamat di tahun 2012.

Seakan meniru kisah Nabi Nuh dalam agama samawi (Islam, Kristen, Yahudi), negara-negara kaya yang dipelopori oleh Amerika Serikat pun membuat bahtera yang super besar dan kuat. Bahtera itu dibuat di China.

Adegan film berikutnya, menggambarkan kejadian gempa bumi di berbagai negara menjelang tahun 2012. Hingga tiba saatnya di tahun 2012, kiamat benar-benar terjadi. Para petinggi Amerika Serikat digambarkan sibuk mempersiapkan keberangkatan ke China untuk menyelamatkan diri dari kiamat.

Namun, Presiden Amerika Serikat menolak ikut pergi ke China untuk menyelamatkan diri dari kiamat dengan bahtera. Sang Presiden memilih berada di tengah-tengah rakyatnya saat kiamat itu terjadi. uh, betapa mulianya sikap Sang Presiden Amerika Serikat itu. Presiden Amerika Serikat hanya mengikutkan anaknya ke dalam misi penyelamatan dari kiamat itu.

Singkat cerita, semua pemimpin negara-negara maju/kaya sudah berada di bahtera itu. Bahtera pun siap diberangkatkan. Menjelang datangnya kiamat, seorang ahli geologi asal Amerika Serikat melihat bahwa masih banyak orang yang berada di luar bahtera. Atas inisiatifnya lah pintu bahtera dibuka untuk menampung warga biasa non pejabat tinggi dari negara-negara maju itu.

Adegan berikutnya tentu saja menggambarkan betapa dahsyatnya kiamat itu terjadi. Tidak ada yang tersisa kecuali bahtera yang telah dinaiki para petinggi negara-negara maju itu.

Dalam ajaran agama samawi dan mungkin juga agama lainnya, ketika kiamat terjadi tidak ada satu pun mahkluk di bumi yang akan selamat, semua hancur bersama dengan hancurnya alam semesta. Namun film 2012 ini mengirimkan pesan bahwa kiamat boleh saja terjadi, dan jika kiamat terjadi maka ikutlah bersama gerbong yang telah dibuat oleh Amerika Serikat dan negara-negara maju, pasti anda akan selamat.

Film 2012 itu seakan melawan ajaran agama tentang kiamat. Tuhan pun tidak mampu menghalangi misi penyelamatan yang telah digagas oleh Amerika Serikat dan negara-negara maju. Film 2012 ini seakan ingin mengirimkan pesan bahwa jalan keselamatan bukan ada di agama-agama namun ada di gerbong yang dipimpin oleh Amerika Serikat dan negara-negara maju.

Di dunia nyata,  gerbong yang dibangun oleh Amerika Serikat dan negara-negara maju itu tak lain dan tak bukan adalah jalan neoliberal. Pengertian neoliberal itu sendiri adalah konsepsi ekonomi-politik yang melarang negara ikut campur dalam persoalan ekonomi. Semua persoalan ekonomi harus diserahkan ke mekanisme pasar, termasuk cabang-cabang produksi dan jasa yang menguasai hajat hidup orang banyak, seperti energi, listrik, pangan, air, pendidikan dan kesehatan. Jika ada warga miskin yang menjadi korban dari gerbong neoliberal itu ya dianggap saja sebuah seleksi alam.

Menurut ajaran neoliberal, negara hanya boleh campur tangan dalam persoalan ekonomi jika itu untuk menjamin mekanisme pasar dapat berjalan.

Para penonton mungkin terksima dengan teknologi dalam film ini. Namun itu akan segera berlalu, menyusul ditemukan teknologi animasi baru yang lebih canggih dan apik dibandingkan film 2012 ini. Jika rasa kekaguman akan teknologi animasi di film 2012 itu hilang, maka yang tersisa hanyalah pesan dalam film ini bahwa jika ingin selamat maka ikutlah dengan rombongan Amerika Serikat dan negara-negara maju. Another world is not posible (dunia lain, tanpa pasar bebas dengan kepemimpinan Amerika Serikat dan negara-negara maju, tidaklah mungkin ada). Pasar bebas adalah sebuah keniscayaan, kata para pakar ekonomi pemuja neoliberal.

Semoga para penonton film 2012 tidak mengistirahatkan akal sehat dan nuraninya. Semoga para penonton film 2012 setelah keluar dari gedung bioskop tetap pada keyakinan bahwa another world is posible. Karena penyelamatan manusia dan alam semesta terlalu penting jika hanya diserahkan ke tangan Amerika Serikat dan negara-negara maju. Terlebih mereka telah terbukti memproduksi model pembangunan yang mengakibatkan pemiskinan dan kehancuran alam semesta.

Selasa, 22 Desember 2009

Benarkah Bumi Berakhir Tahun 2012 ?

Sony Pictures menciptakan sebuah situs yang disebut Keberlanjutan Institute yang memprediksi malapetaka manusia di bumi terjadi tiga tahun dari sekarang.


Lembaga ini menyatakan "setelah dua dekade penelitian astronom, matematikawan, ahli geologi, ahli fisika, insinyur, futuris, sekarang kita tahu bahwa pada tahun 2012 serangkaian kekuatan besar akan mendatangkan malapetaka di planet kita".


Bahkan situs menjelaskan, bagaimana pemilu setelah pemimpin dunia 2102, menawarkan survival kit dan meminta orang untuk sign up lotre untuk diselamatkan.


Tapi website ini adalah kendaraan bencana untuk mempromosikan film tentang akhir dunia pada tahun 2012 berdasarkan prediksi kalender Maya.


Film yang dibintangi John Cusack dan disutradarai oleh Roland Emmerich, yang berada di belakang film blockbuster Hari Kemerdekaan dan The Day After Tomorrow. Film berisi adegan tsunami menghantam kapal induk White House dan Los Angeles menjadi lautan.


Menurut situs bahwa para ilmuwan telah berhasil melacak Planet X yang sebelumnya tak dikenal, dan terletak di tepi tata surya dan di jalur untuk memukul bumi.


Dr David Morrison, ilmuwan senior di Institut Astrobiology NASA mengatakan ia telah menerima lebih dari 1.000 pertanyaan dari anggota masyarakat yang bersangkutan.


Bahkan ada seorang remaja yang mengatakan mereka lebih suka bunuh diri daripada menyaksikan akhir dunia. Dr Morrison mengatakan situs itu "etis salah".

Advertising