Unanswered: PostgreSQL or MySQL if not SQL Server?
I have a clinic management software on C# WinForm and planning to have an online interface for eServices. I am planning to move from SQL Server because of the cost and the Express Edition is not enough capacity..
So for such project, if you are the decision make then which database you'll move to? PostgreSQL or MySQL? or maybe another FREE db?
MySQL is not free unless your application is licenses under the GPL. There is a grey area on when an application based on MySQL falls under the restriction of the GPL license. So if you do consider MySQL I'd recommend to contact a lawyer first to clear up the license situation.
Or simply use PostgreSQL which is totally free regardless of the usage.
And if offers more functionality than MySQL. Here are some things that bother me about MySQL (apart from the GPL):
No deferrable constraints
No check constraints
Non transactional FK evaluation
No recursive queries
No table functions
No rename for columns (not sure about that one)
No common table expressions
No windowing functions
No function based index
No partial index
No full text search on transactional tables
No GIS features on transactional tables
No MINUS or INTERSECT operator
Pretty dumb query optimizer with sub-selects
Obnoxious limits on sub-selects with UPDATEs
A lot of non-standard syntax (|| is a logical OR) that cannot be changed - although for you coming from SQL server that is probably an advantage
A lot of non-standard syntax in the default installation (single vs. double quotes vs. "backticks)
Accepts 31st of Februar as a valid date in the default installation
MySQL on the other hand seems to have an easier to install replication and clustering solution (you can get the same with PostgreSQL but it's more complex to setup as the required third party tools a are not that well documented).
"Lisa, in this house, we obey the laws of thermodynamics!" - Homer Simpson
"I have my standards. They may be low, but I have them!" - Bette Middler
"It's a book about a Spanish guy named Manual. You should read it." - Dilbert
You can rename columns but it is not the most stright forward thing. The way you do it is to rename the column and give it a new definition. Say you have a column called psswords in users where you forgot the a. The code would look like this
alter table users change pssword password varchar(40);
The following was tested in 5.1.41
But to answer the orginal post I would agree with everyone and use Postgres. It has a pretty straight forward interface, great support, and it is pretty mature.
You can rename columns but it is not the most stright forward thing. The way you do it is to rename the column and give it a new definition. Say you have a column called psswords in users where you forgot the a.