SQL: Как понять, когда надо писать условие в JOIN-условие, а когда в WHERE
Это в общем-то важно только для LEFT JOIN, для INNER JOIN тут могут быть только теоретические различия в производительности, хотя думаю, что парсер их решит.
MySQL DUPLICATE KEY UPDATE
Забавно получилось: давно написал, как сделать ON DUPLICATE KEY UPDATE для SQL Server и ON DUPLICATE KEY UPDATE для PostgreSQL, а «оригинал» не описал.
Удаление таблицы с FOREIGN KEY в MySQL
Допустим мы создали таблицу
1 2 3 4 5 6 7 |
CREATE TABLE IF NOT EXISTS `Inventory`.`Equipment` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `category_id` INT(10) UNSIGNED NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (`category_id`) REFERENCES EquipmentCategory(`id`) ON DELETE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
Тогда при попытке удалить таблицу (или хотя бы ключ) получим сообщение
1 2 |
DROP TABLE IF EXISTS `Inventory`.`Equipment`; -- [HY000][152] Cannot delete or update a parent row: a foreign key constraint fails () |
Чтобы удалить таблицу, нужно сначала удалить CONSTRAINT, потом индекс, а только потом таблицу. Сначала узнаем название CONSTRAINTа:
1 2 3 4 5 6 7 8 9 |
SHOW CREATE TABLE `Inventory`.`Equipment`; --create table Inventory.Equipment ( -- id int unsigned not null, -- category_id int unsigned not null, -- primary key (id), -- foreign key Equipment_ibfk_1 (category_id) references EquipmentCategory(id) --); --create index category_id on Inventory.Equipment (category_id); |
Берём название Equipment_ibfk_1 и далее:
1 2 3 |
ALTER TABLE `Inventory`.`Equipment` DROP FOREIGN KEY `Equipment_ibfk_1`; ALTER TABLE `Inventory`.`Equipment` DROP KEY `category_id`; DROP TABLE IF EXISTS `Inventory`.`Equipment`; |
Потом можно восстановить
1 2 |
ALTER TABLE `Inventory`.`Equipment` ADD FOREIGN KEY (`category_id`) REFERENCES `EquipmentCategory`(`id`) ON DELETE RESTRICT; |
А на будущее лучше пользоваться более полным синтаксисом создания внешних …
Localstorage use — not abuse
Набор слайдов про best practices при использовании localstorage http://localstorage-use-not-abuse.appspot.com/
В jQuery начиная с версии 1.8 можно исключить некоторые модули
http://habrahabr.ru/post/145810/
Как решить проблему Error: Protected multilib versions: glibc-2.12-1.47.38.amzn1.i686 != glibc-2.12-1.47.37.amzn1.x86_64
Процесс обновления на aws (sudo yum update) завис из-за нехватки памяти, после этого попытки sudo yum update приводили к сообщению Error: Protected multilib versions: glibc-2.12-1.47.38.amzn1.i686 != glibc-2.12-1.47.37.amzn1.x86_64 Помогло:
1 |
sudo yum upgrade --setopt=protected_multilib=false --skip-broken |
Способ взят отсюда — http://nerdbynature.de/s9y/?279, здесь ещё много способов починить yum.
Статический анализ PHP-кода с помощью HipHop
Нашёл на хабре статью про интересное использование HipHop, вот её текст: Неожиданно не нашёл информации на русском языке о такой замечательной возможности HipHop, как статический анализ кода для PHP, а потому встречайте обзор, на идею которого меня натолкнула презентация Расмуса на DevConf. А как это вообще? Статический анализ кода — вещь весьма полезная, ведь иначе ошибку …
RealSync — односторонняя синхронизация исходников
http://habrahabr.ru/post/139348/
Экспорт чатов Skype в Windows
Собираюсь переезжать с одного компа на другой. Для экспорта разговоров Skype нашёл VBScript — http://itarato.blogspot.com/2009/01/save-skype-chat-history.html
Backbone relational — библиотека для работы с зависимостями между моделями в backbone
Вот код — https://github.com/PaulUithol/Backbone-relational, вот подробный туториал — http://antoviaque.org/docs/tutorials/backbone-relational-tutorial/. Позволяет создавать любые зависимости между моделями — один-ко-многим, один-к-одному, многие-ко-многим. Смущает только одно — библиотека весит больше, чем сам backbone:)