Ваша логика кажется звуковой, но Вы могли бы хотеть полагать, что добавление некоторого кода предотвращает вставку, если Вы передали в определенном первичном ключе.
Иначе, если Вы всегда делаете вставку, если обновление не влияло ни на какие записи, что происходит, когда кто-то удаляет запись перед Вами выполнения "UPSERT"? Теперь запись, которую Вы пытались обновить, не существует, таким образом, она создаст запись вместо этого. Это, вероятно, не поведение, которое Вы искали.
PostgreSQL полностью бесплатен и является подходящей заменой MySQL.
Насколько я понимаю, способ использования MySQL находится в рамках бесплатной лицензии, но я не уверен в этом .
Насколько я понимаю, вам не нужно покупать коммерческую лицензию, если вы хотите использовать MySQL в коммерческих целях. Приобретение лицензии дает вам корпоративную поддержку от команды MySQL, и они помогают вам с оптимизацией и тому подобным. Посмотрите сравнительную таблицу здесь:
PostgreSQL не имеет коммерческой версии и намного безопаснее (юридически) в использовании, чем MySQL, плюс он очень похож на Oracle Pl / SQL, поэтому навыки, необходимые для этого, почти такие же, как и у Oracle, и их легко найти.
В целях безопасности я бы не стал использовать MySQL, если я не купил лицензию.
Вот статья на тему MySQL License. : http://www.xaprb.com/blog/2008/05/14/mysql-free-software-but-not-open-source/
ОБНОВЛЕНИЕ. Извините, я сначала ошибся. Если вы не распространяете код своего веб-сайта, то нет, вам не нужно покупать лицензию. GPL ограничивает только распространение, но не использование.
Innobase Oy предоставляет InnoDB исключительно Sun / MySQL, которая распространяет и поддерживает InnoDB в рамках своих продуктовых предложений. InnoDB включен в MySQL Enterprise Server под лицензией GNU Public License (GPL) V2 с открытым исходным кодом и подходит для широкого круга пользователей. Версия MySQL Community Edition, которая также доступна с открытым исходным кодом на условиях GPLv2, также включает InnoDB.