Backup MySQL users
mysql -BNe “select concat(‘\”,user,’\’@\”,host,’\”) from mysql.user where user != ‘root'” | \ while read uh; do mysql -BNe “show grants for $uh” | sed ‘s/$/;/; s/\\\\/\\/g’; done > grants.sql
mysql -BNe “select concat(‘\”,user,’\’@\”,host,’\”) from mysql.user where user != ‘root'” | \ while read uh; do mysql -BNe “show grants for $uh” | sed ‘s/$/;/; s/\\\\/\\/g’; done > grants.sql
How about the Materialized Path design? CREATE TABLE trie ( path VARCHAR(<maxdepth>) PRIMARY KEY, …other attributes of a tree node… ); To store a word like “stackoverflow”: INSERT INTO trie (path) VALUES (‘s’), (‘st’), (‘sta’), (‘stac’), (‘stack’), (‘stacko’), (‘stackov’), (‘stackove’), (‘stackover’), (‘stackover’), (‘stackoverf’), (‘stackoverflo’), (‘stackoverflow’); The materialized path in the tree is the prefixed sequence … Read more
I would go with number 4, but I’d use a char(x) column. If you’re worried about performance, a char(4) takes up as much space (and, or so one would think, disk i/o, bandwidth, and processing time) as an int, which also takes 4 bytes to store. If you’re really worried about performance, make it a … Read more
Logging database changes as far as inserts/deletes/updates, as far as best practices go, is usually done by a trigger on the main table writing entries into a audit table (one audit table per real table, with identical columsn + when/what/who columns). The list of events as a generic list doesn’t exist. It’s really a function … Read more
Ok turns out that this problem was more than just a simple create a table, index it and forget problem 🙂 Here’s what I did just in case someone else faces the same problem (I have used an example of IP Address but it works for other data types too): Problem: Your table has millions … Read more
Turns out you can create a multi-column unique index on an MS access database, but it’s a little crazy if you want to do this via the GUI. There’s also a limitation; you can only use 10 columns per index. Anyway, here’s how you create a multi-column unique index on an MS access database. Open … Read more
This is called the Observation Pattern. Three objects, for the example Book Title=”Gone with the Wind” Author=”Margaret Mitchell” ISBN = ‘978-1416548898’ Cat Name=”Phoebe” Color=”Gray” TailLength = 9 ‘inch’ Beer Bottle Volume = 500 ‘ml’ Color=”Green” This is how tables may look like: Entity EntityID Name Description 1 ‘Book’ ‘To read’ 2 ‘Cat’ ‘Fury cat’ 3 … Read more
Stored procedures have been falling out of favour for several years now. The preferred approach these days for accessing a relational database is via an O/R mapper such as NHibernate or Entity Framework. Stored procedures require much more work to develop and maintain. For each table, you have to write out individual stored procedures to … Read more
This is not to be considered an exhaustive answer, but just a few points on the topic. Since the question is also tagged with the [sql] tag, let me say that, in general, relational databases aren’t particularly suitable for storing data using the EAV model. You can still design an EAV model in SQL, but … Read more
In my opinion, Stored Procedures should be used solely for data manipulation when the same routine needs to be used amongst several different application or for ETL between databases or tables, nothing more. Basically, do as much in code as you can until you run into the DRY principle or what you are doing is … Read more