IS NULL, IS NOT NULL, truthiness among
other assertions on MySQL and PostgreSQL

People like to complain about JavaScript, how
can one thing be equal to the other, i.e. null ==
undefined evaluates to true unless you use
the triple equals ===. Other dynamic typed languages
have its peculiarities, such as Ruby where
0 == true evaluates to true, the reason
for Ruby is that considers 0 as a value and any
value evaluates to true.

How about SQL? The answer is… it depends.

Which database are you using?

Some may be more forgiving, like MySQL doing
casts for you all over the place, or more strict like
PostgreSQL where you can only compare the
truthiness of something of the same type.

I am working building some demos for Cloud SQL and
one of the requirements I had was to run MySQL 5.7 and WordPress
as my sample application. The demo consisted on migrating from a
single VM environment with WordPress and MySQL running alongside.
The narrative: the site got popular and the database became the
bottle neck because of all the shared resources between them and
the application. The proposed solution? A minimal downtime
migration to Cloud SQL, moving the data layer to a dedicated
server.

I am going to be doing this demo a lot of times, so I needed some
way to automate it. I thought of doing through Docker. I am
not Docker proficient, and to begin with I asked …

This is a post based on recent tutorials I
published, with the goal of discussing how to prepare your
current MySQL instance to be configured as an External
Primary Server with a Replica/Follower into Google Cloud
Platform.

First, I want to talk about the jargon used here. I will be using
primary to represent the external
“master” server, and replica to
represent the “slave” server. Personally, I prefer
the terms leader/follower but
primary/replica currently seems to be
more common in the industry. At some point, the word
slave will be used, but because it is the keyword
embedded on the server to represent a replica.

The steps given will be in the context of a VM running a
one-click install of …

What is the X-DevApi? From insidemysql.com there is a definition of the
X-DevAPI and its features in the following paragraphs:

The X DevAPI is the common client-side API used by all connectors
to abstract the details of the X Protocol. It specifies the
common set of CRUD-style functions/methods used by all the
official connectors to work with both document store collections
and relational tables, a common expression language to establish
query properties such as criteria, projections, aliases, and a
standard set of additional database management features for
handling things like transactions, indexes, etc.

The fact that most of these features share the same format and
API between connectors, makes the X DevAPI a perfect fit for
modern polyglot development environments such as microservices,
and the fact that they are based on a …

SQLite is really a good tool to set up quick proof of concepts
and small applications; however it’s not the most robust solution
on the market for working with relational databases. In the open
source community two databases take the top of the list: PostgreSQL and
MySQL.

I did a small project for my studies. I was using
SQLite as I didn’t need much out of it. Curious, I decided to see
how the application would behave on other databases and decided
to try PostgreSQL and MySQL. I had two problems to solve, and
this post is about the first one: how to deal with the
migrations. They were as follows:

Active Record automatically put the field id in all
of its tables, that’s why it is omitted on the migrations.

Disclaimer: This post is aimed to you,
the curious developer, sys-admin, technologist,
whatever-title-you-use. DO NOT run the following
lines on production. Not even in a stable environment, do this if
you don’t care about the outcome of the current data.

If you want to keep up with the newest MySQL developer milestones
I have news for you: there is no upgrade available for milestone
versions. The way to go is to remove old version and install new
one, according to their website:

Upgrades between milestone releases (or from a milestone release
to a GA release) are not supported. For example, upgrading from
8.0.0 to 8.0.1 is not supported, as neither are GA status
releases.

So if you, like me, had the 8.0.0 version and want to test the
8.0.1 (alhtough 8.0.3 milestone is already in development) …

Twitter polls only gives you up to 4 items to choose. What I
wanted to know is if people were using MariaDB or other forks
like Percona, but I didn’t had the proper space, and I only
put three options.

This January I managed to get a bit more syndication on my tweet
and more people replied. I added a 4th option, “Other”.
This option could …

This developer version wasn’t released yet, when it does, use at
your own risk.

Oracle released the development version of MySQL 8.0.0-dmr on September 12th of 2016.
Since then, the team have been working on the 8.0.1 development
milestone. You can find the partial change list here.

The objective here is try to explain how this will have any real
world impact for you from 8.0.1. Please remember though, that any
changes made to this version will not be final until the General
Availability (date not currently set).

These topics are aimed at the Software Engineering side and not
DBA and this is why Replication, for instance, is not
covered …

Generated Columns is a feature released on MySQL 5.7. They can be used during
CREATE TABLE or ALTER TABLE statements.
It is a way of storing data without actually sending it through
the INSERT or UPDATE clauses in SQL.
The database resolves what the data will be.

There are two types of Generated Columns:
Virtual and Stored. They work
with:

Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion
of Oracle or any other party.