This article is a quick pointer on MySQL’s three techniques for UPSERT (update/insert) or MERGE queries. I’ve written about this before, but since SQL 2003 has a MERGE statement (which Oracle and DB2 support), many people are asking for similar functionality in MySQL without realizing it already exists. I hope this article helps you find what you need. The three tools are REPLACE INSERT ... ON DUPLICATE KEY UPDATE .
For Wikipedia junkies out there, there's a very cool Palm Treo interface to Wikipedia available called Quickipedia from Standalone Software. This is a perfect tool for when you're stuck somewhere without access to a good browser and you need find some information. While Google on a PDA is ok for random searches, Quickipedia blows it away for most reference information. Say you're on your way to a meeting and someone asks you about The Mythical Man-Month which you haven't read in 20 years, and you don't want to be completely clueless. A few clicks, boom boom and you've got a summary from Wikipedia. Or if you're in a meeting and you're suddenly wondering who carved …
[Read more]I've been digging around to find documentation on the limit MySQL places on the number of tables in a query. The error is number 1116:
Error: 1116 SQLSTATE: HY000 (ER_TOO_MANY_TABLES) Message: Too many tables; MySQL can only use %d tables in a join
I can't seem to find documentation on what number triggers this error. There are a lot of references to a limit of 31 and 61 out on the web.
I wrote a quick script to generates a slew of tables and a large SQL statement to test the limit. MySQL 4.0.23 precompiled binaries (RPM "standard" package) running on RedHat ES Linux says the limit is 63 tables. MySQL 4.1.14 running on Gentoo Linux raises the error once statements get above 61 tables. MySQL 5.0.20 on Intel Mac is the same, once the statements gets above 61 tables the error is raised. I also found a RedHat ES 2 Linux box with MySQL 3.23.58 running. Limit there is 31 tables, so the folks who came up with this on my Google …
[Read more]
This interesting write-up was brought to my
attention. It's about user interfaces, and the author (Hugh
Fisher) believes there is compelling historical evidence to
suggest that on Linux we need to get a grip on a single user
interface, or else lose out completely. He notes that various
specific other platforms that have had multiple GUIs in the past,
each all lost to a third platform.
Your own thoughts on this? Feel free to comment and discuss!
I decided to go with a bump of the minor version for the next release of MDB2 because there are a number significant changes and additions. One of the big changes is dropping array_key_exists() whereever possible. I kind of got bitten by isset() in the past a lot. Just stupid little mistakes. However I somehow felt more confident with replacing things with empty() calls. The same change was made across all drivers which were released as 1.1.0 versions (except for the Frontbase driver that needs a maintainer and the beta drivers for Oracle and Querysim).
Aside from that the two main features are custom datatypes and query rewriting via the debugging infrastructure. The custom datatypes were already explained in a previous blog post, so I will not go into detail on them again here. However the debugging …
[Read more]Bill Gates, the largest shareholder of Microsoft Corporation has said that he will retire in 2008 from the company he founded 30 years ago. Gates, who has an estimated net worth of $50 billion, says he will retain the Chairman title at Microsoft but plans to work full time for the non-profit Bill & Melinda Gates Foundation which he started in 1995. The foundation has an endowment of $29 billion, making it the largest charitable foundation in the US. The foundation has committed more than $10 billion in grants, mostly in the area of global health care and education.
Gates stepped down from the CEO role at Microsoft in 2000, turning over the reigns to long-time friend and colleague Steve Ballmer in order to take on the role of Chief Software Architect. Ray Ozzie, author of Lotus Notes …
[Read more]I was just reading a text on effective communications, and there was something interesting I noted. With different values and backgrounds all over the world, a lot of things happen (use of colloquisms, etc.) with regards to people understanding each other. When there’s face-to-face meetings, there’s also non-verbal communication to keep note of.
It turns out in South Africa, they call it Ubuntu (we’re much more familiar with its “humanity for others” meaning by now, for sure). They value collective efforts in solving issues that impact the members of the community. And if you’re ever face-to-face with a South African, limited eye contact often shows respect and humility (this is similar with Japan, its polite). In the Western world though, we need eye-contact for confidence purposes, and to show that we’re sincere.
Its also worthy to note (yes, this post had a point) that on the …
[Read more]
As anyone who has been tracking my blog knows, I spent last week
in Korea at the LinuxWorld which was hosted there. Korea is an
amazing place to be. On the one hand you have traditional ways
and on the other you have one of the most wired societies on the
planet who is adopting technology at a fascinating rate.
Talking to one of my hosts gave me a great view into their
society. They have media being piped in from the West, which is
causing a very large shift in their way of thinking. There are
obvious generation gaps, and what is amazing is to see how
cognitive they are of this. One of their popular shows is "Sex in
the City"; just imagine its effect on a tradition dominated
society.
On the technology front there is quite a bit of MySQL in use and
it is showing up in the same pattern it did in the US and Europe:
non- traditional sites and in projects that are under the radar.
Adopters are frequently the innovators. …
There is a bug in MySQL that causes an UPDATE to fail with a unique index violation, even though the statement doesn’t create duplicate values. In this article I’ll explain when this bug can happen, and how to work around it. The bug This is easiest to demonstrate with SQL: create table t (i int not null primary key); insert into t(i) values (1), (2), (3), (4); update t set i = i + 1; -- ERROR 1062 (23000): Duplicate entry '2' for key 1 The bug is caused by MySQL’s method of updating the values.
Garvin Hicking has released Serendipity 1.0 today.
Congratulations to Garvin and his contributors! Thank you for the
best blogging software there is!