Pernahkah Anda mengalami kesulitan ketika ingin membuat hanya satu Record saja yang memiliki status Default dari antara ratusan atau bahkan ribuan Record di dalam sebuah Table? Jika ya, maka artikel berikut ini merupakan solusinya.
Katakanlah kita memiliki sebuah table yang bernama timezone, dengan struktur tabel dan data sebagai berikut:
-- ---------------------------- -- Table structure for timezone -- ---------------------------- DROP TABLE IF EXISTS `timezone`; CREATE TABLE `timezone` ( `Timezone` varchar(50) NOT NULL, `Default` enum('Y','N') NOT NULL DEFAULT 'N', PRIMARY KEY (`Timezone`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- ---------------------------- -- Records of timezone -- ---------------------------- INSERT INTO `timezone` VALUES ('Africa/Abidjan', 'N'); INSERT INTO `timezone` VALUES ('Africa/Accra', 'N'); INSERT INTO `timezone` VALUES ('Africa/Addis_Ababa', 'N'); INSERT INTO `timezone` VALUES ('Africa/Algiers', 'N'); INSERT INTO `timezone` VALUES ('Africa/Asmara', 'N'); INSERT INTO `timezone` VALUES ('Africa/Asmera', 'N'); INSERT INTO `timezone` VALUES ('Africa/Bamako', 'N'); INSERT INTO `timezone` VALUES ('Africa/Bangui', 'N'); INSERT INTO `timezone` VALUES ('Africa/Banjul', 'N'); INSERT INTO `timezone` VALUES ('Africa/Bissau', 'N'); INSERT INTO `timezone` VALUES ('Africa/Blantyre', 'N'); INSERT INTO `timezone` VALUES ('Africa/Brazzaville', 'N'); INSERT INTO `timezone` VALUES ('Africa/Bujumbura', 'N'); INSERT INTO `timezone` VALUES ('Africa/Cairo', 'N'); INSERT INTO `timezone` VALUES ('Africa/Casablanca', 'N'); INSERT INTO `timezone` VALUES ('Africa/Ceuta', 'N'); INSERT INTO `timezone` VALUES ('Africa/Conakry', 'N'); INSERT INTO `timezone` VALUES ('Africa/Dakar', 'N'); INSERT INTO `timezone` VALUES ('Africa/Dar_es_Salaam', 'N'); INSERT INTO `timezone` VALUES ('Africa/Djibouti', 'N'); INSERT INTO `timezone` VALUES ('Africa/Douala', 'N'); INSERT INTO `timezone` VALUES ('Africa/El_Aaiun', 'N'); INSERT INTO `timezone` VALUES ('Africa/Freetown', 'N'); INSERT INTO `timezone` VALUES ('Africa/Gaborone', 'N'); INSERT INTO `timezone` VALUES ('Africa/Harare', 'N'); INSERT INTO `timezone` VALUES ('Africa/Johannesburg', 'N'); INSERT INTO `timezone` VALUES ('Africa/Kampala', 'N'); INSERT INTO `timezone` VALUES ('Africa/Khartoum', 'N'); INSERT INTO `timezone` VALUES ('Africa/Kigali', 'N'); INSERT INTO `timezone` VALUES ('Africa/Kinshasa', 'N'); INSERT INTO `timezone` VALUES ('Africa/Lagos', 'N'); INSERT INTO `timezone` VALUES ('Africa/Libreville', 'N'); INSERT INTO `timezone` VALUES ('Africa/Lome', 'N'); INSERT INTO `timezone` VALUES ('Africa/Luanda', 'N'); INSERT INTO `timezone` VALUES ('Africa/Lubumbashi', 'N'); INSERT INTO `timezone` VALUES ('Africa/Lusaka', 'N'); INSERT INTO `timezone` VALUES ('Africa/Malabo', 'N'); INSERT INTO `timezone` VALUES ('Africa/Maputo', 'N'); INSERT INTO `timezone` VALUES ('Africa/Maseru', 'N'); INSERT INTO `timezone` VALUES ('Africa/Mbabane', 'N'); INSERT INTO `timezone` VALUES ('Africa/Mogadishu', 'N'); INSERT INTO `timezone` VALUES ('Africa/Monrovia', 'N'); INSERT INTO `timezone` VALUES ('Africa/Nairobi', 'N'); INSERT INTO `timezone` VALUES ('Africa/Ndjamena', 'N'); INSERT INTO `timezone` VALUES ('Africa/Niamey', 'N'); INSERT INTO `timezone` VALUES ('Africa/Nouakchott', 'N'); INSERT INTO `timezone` VALUES ('Africa/Ouagadougou', 'N'); INSERT INTO `timezone` VALUES ('Africa/Porto-Novo', 'N'); INSERT INTO `timezone` VALUES ('Africa/Sao_Tome', 'N'); INSERT INTO `timezone` VALUES ('Africa/Timbuktu', 'N'); INSERT INTO `timezone` VALUES ('Africa/Tripoli', 'N'); INSERT INTO `timezone` VALUES ('Africa/Tunis', 'N'); INSERT INTO `timezone` VALUES ('Africa/Windhoek', 'N'); INSERT INTO `timezone` VALUES ('America/Adak', 'N'); INSERT INTO `timezone` VALUES ('America/Anchorage', 'N'); INSERT INTO `timezone` VALUES ('America/Anguilla', 'N'); INSERT INTO `timezone` VALUES ('America/Antigua', 'N'); INSERT INTO `timezone` VALUES ('America/Araguaina', 'N'); INSERT INTO `timezone` VALUES ('America/Argentina/Buenos_Aires', 'N'); INSERT INTO `timezone` VALUES ('America/Argentina/Catamarca', 'N'); INSERT INTO `timezone` VALUES ('America/Argentina/ComodRivadavia', 'N'); INSERT INTO `timezone` VALUES ('America/Argentina/Cordoba', 'N'); INSERT INTO `timezone` VALUES ('America/Argentina/Jujuy', 'N'); INSERT INTO `timezone` VALUES ('America/Argentina/La_Rioja', 'N'); INSERT INTO `timezone` VALUES ('America/Argentina/Mendoza', 'N'); INSERT INTO `timezone` VALUES ('America/Argentina/Rio_Gallegos', 'N'); INSERT INTO `timezone` VALUES ('America/Argentina/Salta', 'N'); INSERT INTO `timezone` VALUES ('America/Argentina/San_Juan', 'N'); INSERT INTO `timezone` VALUES ('America/Argentina/San_Luis', 'N'); INSERT INTO `timezone` VALUES ('America/Argentina/Tucuman', 'N'); INSERT INTO `timezone` VALUES ('America/Argentina/Ushuaia', 'N'); INSERT INTO `timezone` VALUES ('America/Aruba', 'N'); INSERT INTO `timezone` VALUES ('America/Asuncion', 'N'); INSERT INTO `timezone` VALUES ('America/Atikokan', 'N'); INSERT INTO `timezone` VALUES ('America/Atka', 'N'); INSERT INTO `timezone` VALUES ('America/Bahia', 'N'); INSERT INTO `timezone` VALUES ('America/Bahia_Banderas', 'N'); INSERT INTO `timezone` VALUES ('America/Barbados', 'N'); INSERT INTO `timezone` VALUES ('America/Belem', 'N'); INSERT INTO `timezone` VALUES ('America/Belize', 'N'); INSERT INTO `timezone` VALUES ('America/Blanc-Sablon', 'N'); INSERT INTO `timezone` VALUES ('America/Boa_Vista', 'N'); INSERT INTO `timezone` VALUES ('America/Bogota', 'N'); INSERT INTO `timezone` VALUES ('America/Boise', 'N'); INSERT INTO `timezone` VALUES ('America/Buenos_Aires', 'N'); INSERT INTO `timezone` VALUES ('America/Cambridge_Bay', 'N'); INSERT INTO `timezone` VALUES ('America/Campo_Grande', 'N'); INSERT INTO `timezone` VALUES ('America/Cancun', 'N'); INSERT INTO `timezone` VALUES ('America/Caracas', 'N'); INSERT INTO `timezone` VALUES ('America/Catamarca', 'N'); INSERT INTO `timezone` VALUES ('America/Cayenne', 'N'); INSERT INTO `timezone` VALUES ('America/Cayman', 'N'); INSERT INTO `timezone` VALUES ('America/Chicago', 'N'); INSERT INTO `timezone` VALUES ('America/Chihuahua', 'N'); INSERT INTO `timezone` VALUES ('America/Coral_Harbour', 'N'); INSERT INTO `timezone` VALUES ('America/Cordoba', 'N'); INSERT INTO `timezone` VALUES ('America/Costa_Rica', 'N'); INSERT INTO `timezone` VALUES ('America/Cuiaba', 'N'); INSERT INTO `timezone` VALUES ('America/Curacao', 'N'); INSERT INTO `timezone` VALUES ('America/Danmarkshavn', 'N'); INSERT INTO `timezone` VALUES ('America/Dawson', 'N'); INSERT INTO `timezone` VALUES ('America/Dawson_Creek', 'N'); INSERT INTO `timezone` VALUES ('America/Denver', 'N'); INSERT INTO `timezone` VALUES ('America/Detroit', 'N'); INSERT INTO `timezone` VALUES ('America/Dominica', 'N'); INSERT INTO `timezone` VALUES ('America/Edmonton', 'N'); INSERT INTO `timezone` VALUES ('America/Eirunepe', 'N'); INSERT INTO `timezone` VALUES ('America/El_Salvador', 'N'); INSERT INTO `timezone` VALUES ('America/Ensenada', 'N'); INSERT INTO `timezone` VALUES ('America/Fort_Wayne', 'N'); INSERT INTO `timezone` VALUES ('America/Fortaleza', 'N'); INSERT INTO `timezone` VALUES ('America/Glace_Bay', 'N'); INSERT INTO `timezone` VALUES ('America/Godthab', 'N'); INSERT INTO `timezone` VALUES ('America/Goose_Bay', 'N'); INSERT INTO `timezone` VALUES ('America/Grand_Turk', 'N'); INSERT INTO `timezone` VALUES ('America/Grenada', 'N'); INSERT INTO `timezone` VALUES ('America/Guadeloupe', 'N'); INSERT INTO `timezone` VALUES ('America/Guatemala', 'N'); INSERT INTO `timezone` VALUES ('America/Guayaquil', 'N'); INSERT INTO `timezone` VALUES ('America/Guyana', 'N'); INSERT INTO `timezone` VALUES ('America/Halifax', 'N'); INSERT INTO `timezone` VALUES ('America/Havana', 'N'); INSERT INTO `timezone` VALUES ('America/Hermosillo', 'N'); INSERT INTO `timezone` VALUES ('America/Indiana/Indianapolis', 'N'); INSERT INTO `timezone` VALUES ('America/Indiana/Knox', 'N'); INSERT INTO `timezone` VALUES ('America/Indiana/Marengo', 'N'); INSERT INTO `timezone` VALUES ('America/Indiana/Petersburg', 'N'); INSERT INTO `timezone` VALUES ('America/Indiana/Tell_City', 'N'); INSERT INTO `timezone` VALUES ('America/Indiana/Vevay', 'N'); INSERT INTO `timezone` VALUES ('America/Indiana/Vincennes', 'N'); INSERT INTO `timezone` VALUES ('America/Indiana/Winamac', 'N'); INSERT INTO `timezone` VALUES ('America/Indianapolis', 'N'); INSERT INTO `timezone` VALUES ('America/Inuvik', 'N'); INSERT INTO `timezone` VALUES ('America/Iqaluit', 'N'); INSERT INTO `timezone` VALUES ('America/Jamaica', 'N'); INSERT INTO `timezone` VALUES ('America/Jujuy', 'N'); INSERT INTO `timezone` VALUES ('America/Juneau', 'N'); INSERT INTO `timezone` VALUES ('America/Kentucky/Louisville', 'N'); INSERT INTO `timezone` VALUES ('America/Kentucky/Monticello', 'N'); INSERT INTO `timezone` VALUES ('America/Knox_IN', 'N'); INSERT INTO `timezone` VALUES ('America/La_Paz', 'N'); INSERT INTO `timezone` VALUES ('America/Lima', 'N'); INSERT INTO `timezone` VALUES ('America/Los_Angeles', 'N'); INSERT INTO `timezone` VALUES ('America/Louisville', 'N'); INSERT INTO `timezone` VALUES ('America/Maceio', 'N'); INSERT INTO `timezone` VALUES ('America/Managua', 'N'); INSERT INTO `timezone` VALUES ('America/Manaus', 'N'); INSERT INTO `timezone` VALUES ('America/Marigot', 'N'); INSERT INTO `timezone` VALUES ('America/Martinique', 'N'); INSERT INTO `timezone` VALUES ('America/Matamoros', 'N'); INSERT INTO `timezone` VALUES ('America/Mazatlan', 'N'); INSERT INTO `timezone` VALUES ('America/Mendoza', 'N'); INSERT INTO `timezone` VALUES ('America/Menominee', 'N'); INSERT INTO `timezone` VALUES ('America/Merida', 'N'); INSERT INTO `timezone` VALUES ('America/Mexico_City', 'N'); INSERT INTO `timezone` VALUES ('America/Miquelon', 'N'); INSERT INTO `timezone` VALUES ('America/Moncton', 'N'); INSERT INTO `timezone` VALUES ('America/Monterrey', 'N'); INSERT INTO `timezone` VALUES ('America/Montevideo', 'N'); INSERT INTO `timezone` VALUES ('America/Montreal', 'N'); INSERT INTO `timezone` VALUES ('America/Montserrat', 'N'); INSERT INTO `timezone` VALUES ('America/Nassau', 'N'); INSERT INTO `timezone` VALUES ('America/New_York', 'N'); INSERT INTO `timezone` VALUES ('America/Nipigon', 'N'); INSERT INTO `timezone` VALUES ('America/Nome', 'N'); INSERT INTO `timezone` VALUES ('America/Noronha', 'N'); INSERT INTO `timezone` VALUES ('America/North_Dakota/Center', 'N'); INSERT INTO `timezone` VALUES ('America/North_Dakota/New_Salem', 'N'); INSERT INTO `timezone` VALUES ('America/Ojinaga', 'N'); INSERT INTO `timezone` VALUES ('America/Panama', 'N'); INSERT INTO `timezone` VALUES ('America/Pangnirtung', 'N'); INSERT INTO `timezone` VALUES ('America/Paramaribo', 'N'); INSERT INTO `timezone` VALUES ('America/Phoenix', 'N'); INSERT INTO `timezone` VALUES ('America/Port-au-Prince', 'N'); INSERT INTO `timezone` VALUES ('America/Port_of_Spain', 'N'); INSERT INTO `timezone` VALUES ('America/Porto_Acre', 'N'); INSERT INTO `timezone` VALUES ('America/Porto_Velho', 'N'); INSERT INTO `timezone` VALUES ('America/Puerto_Rico', 'N'); INSERT INTO `timezone` VALUES ('America/Rainy_River', 'N'); INSERT INTO `timezone` VALUES ('America/Rankin_Inlet', 'N'); INSERT INTO `timezone` VALUES ('America/Recife', 'N'); INSERT INTO `timezone` VALUES ('America/Regina', 'N'); INSERT INTO `timezone` VALUES ('America/Resolute', 'N'); INSERT INTO `timezone` VALUES ('America/Rio_Branco', 'N'); INSERT INTO `timezone` VALUES ('America/Rosario', 'N'); INSERT INTO `timezone` VALUES ('America/Santa_Isabel', 'N'); INSERT INTO `timezone` VALUES ('America/Santarem', 'N'); INSERT INTO `timezone` VALUES ('America/Santiago', 'N'); INSERT INTO `timezone` VALUES ('America/Santo_Domingo', 'N'); INSERT INTO `timezone` VALUES ('America/Sao_Paulo', 'N'); INSERT INTO `timezone` VALUES ('America/Scoresbysund', 'N'); INSERT INTO `timezone` VALUES ('America/Shiprock', 'N'); INSERT INTO `timezone` VALUES ('America/St_Barthelemy', 'N'); INSERT INTO `timezone` VALUES ('America/St_Johns', 'N'); INSERT INTO `timezone` VALUES ('America/St_Kitts', 'N'); INSERT INTO `timezone` VALUES ('America/St_Lucia', 'N'); INSERT INTO `timezone` VALUES ('America/St_Thomas', 'N'); INSERT INTO `timezone` VALUES ('America/St_Vincent', 'N'); INSERT INTO `timezone` VALUES ('America/Swift_Current', 'N'); INSERT INTO `timezone` VALUES ('America/Tegucigalpa', 'N'); INSERT INTO `timezone` VALUES ('America/Thule', 'N'); INSERT INTO `timezone` VALUES ('America/Thunder_Bay', 'N'); INSERT INTO `timezone` VALUES ('America/Tijuana', 'N'); INSERT INTO `timezone` VALUES ('America/Toronto', 'N'); INSERT INTO `timezone` VALUES ('America/Tortola', 'N'); INSERT INTO `timezone` VALUES ('America/Vancouver', 'N'); INSERT INTO `timezone` VALUES ('America/Virgin', 'N'); INSERT INTO `timezone` VALUES ('America/Whitehorse', 'N'); INSERT INTO `timezone` VALUES ('America/Winnipeg', 'N'); INSERT INTO `timezone` VALUES ('America/Yakutat', 'N'); INSERT INTO `timezone` VALUES ('America/Yellowknife', 'N'); INSERT INTO `timezone` VALUES ('Antarctica/Casey', 'N'); INSERT INTO `timezone` VALUES ('Antarctica/Davis', 'N'); INSERT INTO `timezone` VALUES ('Antarctica/DumontDUrville', 'N'); INSERT INTO `timezone` VALUES ('Antarctica/Macquarie', 'N'); INSERT INTO `timezone` VALUES ('Antarctica/Mawson', 'N'); INSERT INTO `timezone` VALUES ('Antarctica/McMurdo', 'N'); INSERT INTO `timezone` VALUES ('Antarctica/Palmer', 'N'); INSERT INTO `timezone` VALUES ('Antarctica/Rothera', 'N'); INSERT INTO `timezone` VALUES ('Antarctica/South_Pole', 'N'); INSERT INTO `timezone` VALUES ('Antarctica/Syowa', 'N'); INSERT INTO `timezone` VALUES ('Antarctica/Vostok', 'N'); INSERT INTO `timezone` VALUES ('Asia/Aden', 'N'); INSERT INTO `timezone` VALUES ('Asia/Almaty', 'N'); INSERT INTO `timezone` VALUES ('Asia/Amman', 'N'); INSERT INTO `timezone` VALUES ('Asia/Anadyr', 'N'); INSERT INTO `timezone` VALUES ('Asia/Aqtau', 'N'); INSERT INTO `timezone` VALUES ('Asia/Aqtobe', 'N'); INSERT INTO `timezone` VALUES ('Asia/Ashgabat', 'N'); INSERT INTO `timezone` VALUES ('Asia/Ashkhabad', 'N'); INSERT INTO `timezone` VALUES ('Asia/Baghdad', 'N'); INSERT INTO `timezone` VALUES ('Asia/Bahrain', 'N'); INSERT INTO `timezone` VALUES ('Asia/Baku', 'N'); INSERT INTO `timezone` VALUES ('Asia/Bangkok', 'N'); INSERT INTO `timezone` VALUES ('Asia/Beirut', 'N'); INSERT INTO `timezone` VALUES ('Asia/Bishkek', 'N'); INSERT INTO `timezone` VALUES ('Asia/Brunei', 'N'); INSERT INTO `timezone` VALUES ('Asia/Calcutta', 'N'); INSERT INTO `timezone` VALUES ('Asia/Choibalsan', 'N'); INSERT INTO `timezone` VALUES ('Asia/Chongqing', 'N'); INSERT INTO `timezone` VALUES ('Asia/Chungking', 'N'); INSERT INTO `timezone` VALUES ('Asia/Colombo', 'N'); INSERT INTO `timezone` VALUES ('Asia/Dacca', 'N'); INSERT INTO `timezone` VALUES ('Asia/Damascus', 'N'); INSERT INTO `timezone` VALUES ('Asia/Dhaka', 'N'); INSERT INTO `timezone` VALUES ('Asia/Dili', 'N'); INSERT INTO `timezone` VALUES ('Asia/Dubai', 'N'); INSERT INTO `timezone` VALUES ('Asia/Dushanbe', 'N'); INSERT INTO `timezone` VALUES ('Asia/Gaza', 'N'); INSERT INTO `timezone` VALUES ('Asia/Harbin', 'N'); INSERT INTO `timezone` VALUES ('Asia/Ho_Chi_Minh', 'N'); INSERT INTO `timezone` VALUES ('Asia/Hong_Kong', 'N'); INSERT INTO `timezone` VALUES ('Asia/Hovd', 'N'); INSERT INTO `timezone` VALUES ('Asia/Irkutsk', 'N'); INSERT INTO `timezone` VALUES ('Asia/Istanbul', 'N'); INSERT INTO `timezone` VALUES ('Asia/Jakarta', 'Y'); INSERT INTO `timezone` VALUES ('Asia/Jayapura', 'N'); INSERT INTO `timezone` VALUES ('Asia/Jerusalem', 'N'); INSERT INTO `timezone` VALUES ('Asia/Kabul', 'N'); INSERT INTO `timezone` VALUES ('Asia/Kamchatka', 'N'); INSERT INTO `timezone` VALUES ('Asia/Karachi', 'N'); INSERT INTO `timezone` VALUES ('Asia/Kashgar', 'N'); INSERT INTO `timezone` VALUES ('Asia/Kathmandu', 'N'); INSERT INTO `timezone` VALUES ('Asia/Katmandu', 'N'); INSERT INTO `timezone` VALUES ('Asia/Kolkata', 'N'); INSERT INTO `timezone` VALUES ('Asia/Krasnoyarsk', 'N'); INSERT INTO `timezone` VALUES ('Asia/Kuala_Lumpur', 'N'); INSERT INTO `timezone` VALUES ('Asia/Kuching', 'N'); INSERT INTO `timezone` VALUES ('Asia/Kuwait', 'N'); INSERT INTO `timezone` VALUES ('Asia/Macao', 'N'); INSERT INTO `timezone` VALUES ('Asia/Macau', 'N'); INSERT INTO `timezone` VALUES ('Asia/Magadan', 'N'); INSERT INTO `timezone` VALUES ('Asia/Makassar', 'N'); INSERT INTO `timezone` VALUES ('Asia/Manila', 'N'); INSERT INTO `timezone` VALUES ('Asia/Muscat', 'N'); INSERT INTO `timezone` VALUES ('Asia/Nicosia', 'N'); INSERT INTO `timezone` VALUES ('Asia/Novokuznetsk', 'N'); INSERT INTO `timezone` VALUES ('Asia/Novosibirsk', 'N'); INSERT INTO `timezone` VALUES ('Asia/Omsk', 'N'); INSERT INTO `timezone` VALUES ('Asia/Oral', 'N'); INSERT INTO `timezone` VALUES ('Asia/Phnom_Penh', 'N'); INSERT INTO `timezone` VALUES ('Asia/Pontianak', 'N'); INSERT INTO `timezone` VALUES ('Asia/Pyongyang', 'N'); INSERT INTO `timezone` VALUES ('Asia/Qatar', 'N'); INSERT INTO `timezone` VALUES ('Asia/Qyzylorda', 'N'); INSERT INTO `timezone` VALUES ('Asia/Rangoon', 'N'); INSERT INTO `timezone` VALUES ('Asia/Riyadh', 'N'); INSERT INTO `timezone` VALUES ('Asia/Saigon', 'N'); INSERT INTO `timezone` VALUES ('Asia/Sakhalin', 'N'); INSERT INTO `timezone` VALUES ('Asia/Samarkand', 'N'); INSERT INTO `timezone` VALUES ('Asia/Seoul', 'N'); INSERT INTO `timezone` VALUES ('Asia/Shanghai', 'N'); INSERT INTO `timezone` VALUES ('Asia/Singapore', 'N'); INSERT INTO `timezone` VALUES ('Asia/Taipei', 'N'); INSERT INTO `timezone` VALUES ('Asia/Tashkent', 'N'); INSERT INTO `timezone` VALUES ('Asia/Tbilisi', 'N'); INSERT INTO `timezone` VALUES ('Asia/Tehran', 'N'); INSERT INTO `timezone` VALUES ('Asia/Tel_Aviv', 'N'); INSERT INTO `timezone` VALUES ('Asia/Thimbu', 'N'); INSERT INTO `timezone` VALUES ('Asia/Thimphu', 'N'); INSERT INTO `timezone` VALUES ('Asia/Tokyo', 'N'); INSERT INTO `timezone` VALUES ('Asia/Ujung_Pandang', 'N'); INSERT INTO `timezone` VALUES ('Asia/Ulaanbaatar', 'N'); INSERT INTO `timezone` VALUES ('Asia/Ulan_Bator', 'N'); INSERT INTO `timezone` VALUES ('Asia/Urumqi', 'N'); INSERT INTO `timezone` VALUES ('Asia/Vientiane', 'N'); INSERT INTO `timezone` VALUES ('Asia/Vladivostok', 'N'); INSERT INTO `timezone` VALUES ('Asia/Yakutsk', 'N'); INSERT INTO `timezone` VALUES ('Asia/Yekaterinburg', 'N'); INSERT INTO `timezone` VALUES ('Asia/Yerevan', 'N'); INSERT INTO `timezone` VALUES ('Atlantic/Azores', 'N'); INSERT INTO `timezone` VALUES ('Atlantic/Bermuda', 'N'); INSERT INTO `timezone` VALUES ('Atlantic/Canary', 'N'); INSERT INTO `timezone` VALUES ('Atlantic/Cape_Verde', 'N'); INSERT INTO `timezone` VALUES ('Atlantic/Faeroe', 'N'); INSERT INTO `timezone` VALUES ('Atlantic/Faroe', 'N'); INSERT INTO `timezone` VALUES ('Atlantic/Jan_Mayen', 'N'); INSERT INTO `timezone` VALUES ('Atlantic/Madeira', 'N'); INSERT INTO `timezone` VALUES ('Atlantic/Reykjavik', 'N'); INSERT INTO `timezone` VALUES ('Atlantic/South_Georgia', 'N'); INSERT INTO `timezone` VALUES ('Atlantic/St_Helena', 'N'); INSERT INTO `timezone` VALUES ('Atlantic/Stanley', 'N'); INSERT INTO `timezone` VALUES ('Australia/ACT', 'N'); INSERT INTO `timezone` VALUES ('Australia/Adelaide', 'N'); INSERT INTO `timezone` VALUES ('Australia/Brisbane', 'N'); INSERT INTO `timezone` VALUES ('Australia/Broken_Hill', 'N'); INSERT INTO `timezone` VALUES ('Australia/Canberra', 'N'); INSERT INTO `timezone` VALUES ('Australia/Currie', 'N'); INSERT INTO `timezone` VALUES ('Australia/Darwin', 'N'); INSERT INTO `timezone` VALUES ('Australia/Eucla', 'N'); INSERT INTO `timezone` VALUES ('Australia/Hobart', 'N'); INSERT INTO `timezone` VALUES ('Australia/LHI', 'N'); INSERT INTO `timezone` VALUES ('Australia/Lindeman', 'N'); INSERT INTO `timezone` VALUES ('Australia/Lord_Howe', 'N'); INSERT INTO `timezone` VALUES ('Australia/Melbourne', 'N'); INSERT INTO `timezone` VALUES ('Australia/North', 'N'); INSERT INTO `timezone` VALUES ('Australia/NSW', 'N'); INSERT INTO `timezone` VALUES ('Australia/Perth', 'N'); INSERT INTO `timezone` VALUES ('Australia/Queensland', 'N'); INSERT INTO `timezone` VALUES ('Australia/South', 'N'); INSERT INTO `timezone` VALUES ('Australia/Sydney', 'N'); INSERT INTO `timezone` VALUES ('Australia/Tasmania', 'N'); INSERT INTO `timezone` VALUES ('Australia/Victoria', 'N'); INSERT INTO `timezone` VALUES ('Australia/West', 'N'); INSERT INTO `timezone` VALUES ('Australia/Yancowinna', 'N'); INSERT INTO `timezone` VALUES ('Europe/Amsterdam', 'N'); INSERT INTO `timezone` VALUES ('Europe/Andorra', 'N'); INSERT INTO `timezone` VALUES ('Europe/Athens', 'N'); INSERT INTO `timezone` VALUES ('Europe/Belfast', 'N'); INSERT INTO `timezone` VALUES ('Europe/Belgrade', 'N'); INSERT INTO `timezone` VALUES ('Europe/Berlin', 'N'); INSERT INTO `timezone` VALUES ('Europe/Bratislava', 'N'); INSERT INTO `timezone` VALUES ('Europe/Brussels', 'N'); INSERT INTO `timezone` VALUES ('Europe/Bucharest', 'N'); INSERT INTO `timezone` VALUES ('Europe/Budapest', 'N'); INSERT INTO `timezone` VALUES ('Europe/Chisinau', 'N'); INSERT INTO `timezone` VALUES ('Europe/Copenhagen', 'N'); INSERT INTO `timezone` VALUES ('Europe/Dublin', 'N'); INSERT INTO `timezone` VALUES ('Europe/Gibraltar', 'N'); INSERT INTO `timezone` VALUES ('Europe/Guernsey', 'N'); INSERT INTO `timezone` VALUES ('Europe/Helsinki', 'N'); INSERT INTO `timezone` VALUES ('Europe/Isle_of_Man', 'N'); INSERT INTO `timezone` VALUES ('Europe/Istanbul', 'N'); INSERT INTO `timezone` VALUES ('Europe/Jersey', 'N'); INSERT INTO `timezone` VALUES ('Europe/Kaliningrad', 'N'); INSERT INTO `timezone` VALUES ('Europe/Kiev', 'N'); INSERT INTO `timezone` VALUES ('Europe/Lisbon', 'N'); INSERT INTO `timezone` VALUES ('Europe/Ljubljana', 'N'); INSERT INTO `timezone` VALUES ('Europe/London', 'N'); INSERT INTO `timezone` VALUES ('Europe/Luxembourg', 'N'); INSERT INTO `timezone` VALUES ('Europe/Madrid', 'N'); INSERT INTO `timezone` VALUES ('Europe/Malta', 'N'); INSERT INTO `timezone` VALUES ('Europe/Mariehamn', 'N'); INSERT INTO `timezone` VALUES ('Europe/Minsk', 'N'); INSERT INTO `timezone` VALUES ('Europe/Monaco', 'N'); INSERT INTO `timezone` VALUES ('Europe/Moscow', 'N'); INSERT INTO `timezone` VALUES ('Europe/Nicosia', 'N'); INSERT INTO `timezone` VALUES ('Europe/Oslo', 'N'); INSERT INTO `timezone` VALUES ('Europe/Paris', 'N'); INSERT INTO `timezone` VALUES ('Europe/Podgorica', 'N'); INSERT INTO `timezone` VALUES ('Europe/Prague', 'N'); INSERT INTO `timezone` VALUES ('Europe/Riga', 'N'); INSERT INTO `timezone` VALUES ('Europe/Rome', 'N'); INSERT INTO `timezone` VALUES ('Europe/Samara', 'N'); INSERT INTO `timezone` VALUES ('Europe/San_Marino', 'N'); INSERT INTO `timezone` VALUES ('Europe/Sarajevo', 'N'); INSERT INTO `timezone` VALUES ('Europe/Simferopol', 'N'); INSERT INTO `timezone` VALUES ('Europe/Skopje', 'N'); INSERT INTO `timezone` VALUES ('Europe/Sofia', 'N'); INSERT INTO `timezone` VALUES ('Europe/Stockholm', 'N'); INSERT INTO `timezone` VALUES ('Europe/Tallinn', 'N'); INSERT INTO `timezone` VALUES ('Europe/Tirane', 'N'); INSERT INTO `timezone` VALUES ('Europe/Tiraspol', 'N'); INSERT INTO `timezone` VALUES ('Europe/Uzhgorod', 'N'); INSERT INTO `timezone` VALUES ('Europe/Vaduz', 'N'); INSERT INTO `timezone` VALUES ('Europe/Vatican', 'N'); INSERT INTO `timezone` VALUES ('Europe/Vienna', 'N'); INSERT INTO `timezone` VALUES ('Europe/Vilnius', 'N'); INSERT INTO `timezone` VALUES ('Europe/Volgograd', 'N'); INSERT INTO `timezone` VALUES ('Europe/Warsaw', 'N'); INSERT INTO `timezone` VALUES ('Europe/Zagreb', 'N'); INSERT INTO `timezone` VALUES ('Europe/Zaporozhye', 'N'); INSERT INTO `timezone` VALUES ('Europe/Zurich', 'N'); INSERT INTO `timezone` VALUES ('Indian/Antananarivo', 'N'); INSERT INTO `timezone` VALUES ('Indian/Chagos', 'N'); INSERT INTO `timezone` VALUES ('Indian/Christmas', 'N'); INSERT INTO `timezone` VALUES ('Indian/Cocos', 'N'); INSERT INTO `timezone` VALUES ('Indian/Comoro', 'N'); INSERT INTO `timezone` VALUES ('Indian/Kerguelen', 'N'); INSERT INTO `timezone` VALUES ('Indian/Mahe', 'N'); INSERT INTO `timezone` VALUES ('Indian/Maldives', 'N'); INSERT INTO `timezone` VALUES ('Indian/Mauritius', 'N'); INSERT INTO `timezone` VALUES ('Indian/Mayotte', 'N'); INSERT INTO `timezone` VALUES ('Indian/Reunion', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Apia', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Auckland', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Chatham', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Chuuk', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Easter', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Efate', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Enderbury', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Fakaofo', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Fiji', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Funafuti', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Galapagos', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Gambier', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Guadalcanal', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Guam', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Honolulu', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Johnston', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Kiritimati', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Kosrae', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Kwajalein', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Majuro', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Marquesas', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Midway', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Nauru', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Niue', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Norfolk', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Noumea', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Pago_Pago', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Palau', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Pitcairn', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Pohnpei', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Ponape', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Port_Moresby', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Rarotonga', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Saipan', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Samoa', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Tahiti', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Tarawa', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Tongatapu', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Truk', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Wake', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Wallis', 'N'); INSERT INTO `timezone` VALUES ('Pacific/Yap', 'N');
Dari namanya, kita mengetahui bahwa table ini berfungsi untuk menyimpan PHP Timezones dari seluruh penjuru dunia.
Dari 456 Record Timezone tersebut, hanya ada satu Record yang memiliki nilai “Y” pada field Default, yaitu Asia/Jakarta. Artinya, hanya boleh ada satu Record yang statusnya Default di table tersebut.
Jika seandainya Pengguna Aplikasi Web mengubah timezone America/Los_Angeles menjadi Default, maka nilai field Default untuk Record Asia/Jakarta harus diset menjadi “N”.
Selain membuat hanya satu saja Record di table timezone yang statusnya Default, pada saat proses penambahan dan pengubahan data yang Default tersebut, kita juga akan (misalkan) memperbarui data terkait di table settings pada field Default_Timezone dengan data Timezone yang Default tadi.
Beruntunglah Anda jika menggunakan PHPMaker dalam membangun Aplikasi Web, karena hal ini dapat dilakukan dengan sangat mudah, cepat, dan menyenangkan. 🙂
Untuk mengimplementasikan business-logic pemutahiran data tersebut, maka Anda sebagai Web Developer cukup hanya menaruh kode berikut ke dalam dua server event berikut, yaitu Row_Inserted dan Row_Updated:
// Row Inserted event function Row_Inserted($rsold, &$rsnew) { //echo "Row Inserted" if ($rsnew["Default"] == "Y") { $sSqlUpd1 = "UPDATE `timezone` SET `Default` = 'N' WHERE `Timezone` <> '".$rsnew["Timezone"]."'"; ew_Execute($sSqlUpd1); $sSqlUpd2 = "UPDATE `settings` SET `Default_Timezone` = '".$rsnew["Timezone"]."' WHERE `Option_Default` = 'Y'"; ew_Execute($sSqlUpd2); } }
// Row Updated event function Row_Updated($rsold, &$rsnew) { //echo "Row Updated"; if ($rsnew["Default"] != $rsold["Default"]) { if ($rsnew["Default"] == "Y") { $sSqlUpd1 = "UPDATE `timezone` SET `Default` = 'N' WHERE `Timezone` <> '".$rsold["Timezone"]."'"; ew_Execute($sSqlUpd1); $sSqlUpd2 = "UPDATE `settings` SET `Default_Timezone` = '".$rsold["Timezone"]."' WHERE `Option_Default` = 'Y'"; ew_Execute($sSqlUpd2); } } }
Perhatikanlah kode di dalam server event Row_Updated. Kita hanya mengeksekusi kode tersebut jika ketika Pengguna mengubah nilai Y pada field Default di table timezone tadi. Sedangkan nilai di field Timezone akan selalu read-only karena dia berperan sebagai Primary Key di table timezone tersebut.
Sedangkan kode di server event Row_Inserted akan dieksekusi jika hanya data Timezone baru yang ditambahkan memiliki nilai “Y” pada field Default.
Jadi, logikanya sangatlah sederhana. Perubahan hanya terjadi pada saat event penambahan atau pengubahan data. Periksa nilai pada field Default. Jika nilai data baru atau data yang diubah memiliki nilai “Y” pada field Default-nya, maka ubah nilai field Default menjadi “N” pada semua data selain yang baru saja ditambahkan atau diubah tadi.
Wow, PHPMaker memang keren, ya? 😀
Tinggalkan Balasan