MySQL MySQL更改列以添加默认值

ALTER TABLE se_jobs ALTER job_comments SET DEFAULT '0';

MySQL MySQL资本化

DELIMITER $$
CREATE FUNCTION CAP_FIRST (input VARCHAR(255))
 
RETURNS VARCHAR(255)
 
DETERMINISTIC
 
BEGIN
	DECLARE len INT;
	DECLARE i INT;
 
	SET len   = CHAR_LENGTH(input);
	SET input = LOWER(input);
	SET i = 0;
 
	WHILE (i < len) DO
		IF (MID(input,i,1) = ' ' OR i = 0) THEN
			IF (i < len) THEN
				SET input = CONCAT(
					LEFT(input,i),
					UPPER(MID(input,i + 1,1)),
					RIGHT(input,len - i - 1)
				);
			END IF;
		END IF;
		SET i = i + 1;
	END WHILE;
 
	RETURN input;
END$$

DELIMITER ;

MySQL 在WP-Posts表上进行MySQL搜索和替换

update wp_posts set post_content = replace(post_content,'replace_this','with_this');

MySQL 更新MYSQL表中的随机日期

update randomdate set randomdate=
date_sub(curdate(),interval rand()*365 day);

MySQL 在MySQL中删除和添加约束

SET FOREIGN_KEY_CHECKS = 0;

SET FOREIGN_KEY_CHECKS = 1;

MySQL ConversióndeLatin1 a UTF8

/* ¡IMPORTANTE!
 * Este es un tutorial para convertir la codificación de bases de datos de
 * latin1 a utf8. MySQL anteriormente solo utilizaba codificación latin1, y una
 * colación latin1_swedish_ci.
 */

/* Algoritmo:
 * Al convertir los campos a su valor en binario, se puede cambiar la
 * codificación, sin tener que preocuparse por los caracteres especiales:
 * CHAR -> BINARY
 * VARCHAR -> VARBINARY
 * TINYTEXT -> TINYBLOB
 * TEXT -> BLOB
 * MEDIUMTEXT -> MEDIUMBLOB
 * LONGTEXT -> LONGBLOB
 * Los siguientes queries nos ayudan en convertir a y regresar de binario.
*/

/* MyDb
 * Se infiere que la base de datos se llama MyDb.
 */

/* Correr en information_schema
 * El código SQL de estos queries se debe correr en la base de datos llamada
 * information_schema. Los queries generan código SQL que se debe correr en la
 * base de datos 'MyDb'.
 */
USE information_schema;

/* I. Identificar binarios preexistentes
 * Este SQL -- así como el siguiente paso -- es un paso de precaución; hay que
 * anotar los campos que aparezcan aquí, para identificar cuáles campos ya eran
 * de tipo binario. Si no aparecen campos, es motivo de alegría.
 */
SELECT CONCAT('ALTER TABLE ', table_name, ' MODIFY ', column_name, ' ', REPLACE(column_type, 'binary', 'char'), ';') FROM columns WHERE table_schema = 'MyDb' and data_type LIKE '%binary%';

/* II. Identificar blobs preexistentes
 * Este SQL también es un paso de precaución; hay que anotar los campos que
 * aparezcan aquí. Aquí buscamos los campos de tipo blob. Si no aparecen
 * campos, es motivo de alegría.
 */
SELECT CONCAT('ALTER TABLE ', table_name, ' MODIFY ', column_name, ' ', REPLACE(column_type, 'blob', 'text'), ';') FROM columns WHERE table_schema = 'MyDb' and data_type LIKE '%blob%';

/* III. CHAR -> BINARY
 * Conversión de cualquier tipo de Char a su correspondiente Binario.
 */
SELECT CONCAT('ALTER TABLE ', table_name, ' MODIFY ', column_name, ' ', REPLACE(column_type, 'char', 'binary'), ';') FROM columns WHERE table_schema = 'MyDb' and data_type LIKE '%char%';

/* IV. TEXT -> BLOB
 * Conversión de cualquier tipo de Texto a su correspondiente Blob.
 */
SELECT CONCAT('ALTER TABLE ', table_name, ' MODIFY ', column_name, ' ', REPLACE(column_type, 'text', 'blob'), ';') FROM columns WHERE table_schema = 'MyDb' and data_type LIKE '%text%';

/* V. Convertir MyDb de latin1 a utf8
 * Esto convierte y asigna una colación en Unicode a la base de datos. Pero aún
 * falta considerar las tablas y los campos en particular.
 */
ALTER DATABASE MyDb DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

/* VI. Convertir Tablas de MyDb de latin1 a utf8
 * Este query es para cambiar la codificación de las tablas.
 */
SELECT CONCAT('ALTER TABLE ', table_name, ' DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;') FROM tables WHERE table_schema = 'MyDb';

/* VII. Convertir Campos de tipo Char de las Tablas de MyDb de latin1 a utf8
 * Este query es para cambiar la codificación los chars de las tablas.
 */
SELECT CONCAT('ALTER TABLE ', table_name, ' MODIFY ', column_name, ' ', column_type, ' CHARACTER SET utf8 COLLATE utf8_unicode_ci;') FROM columns WHERE table_schema = 'MyDb' and data_type LIKE '%char%';

/* VIII. Convertir Campos de tipo Text de las Tablas de MyDb de latin1 a utf8
 * Este query es para cambiar la codificación los textos de las tablas.
 */
SELECT CONCAT('ALTER TABLE ', table_name, ' MODIFY ', column_name, ' ', column_type, ' CHARACTER SET utf8 COLLATE utf8_unicode_ci;') FROM columns WHERE table_schema = 'MyDb' and data_type LIKE '%text%';

/* IX. BINARY -> CHAR
 * Convierte los binarios a chars. Hay que manualmente eliminar queries de los
 * resultados de el paso I.
 */
SELECT CONCAT('ALTER TABLE ', table_name, ' MODIFY ', column_name, ' ', REPLACE(column_type, 'binary', 'char'), ';') FROM columns WHERE table_schema = 'MyDb' and data_type LIKE '%binary%';

/* X. BLOB -> TEXT
 * Revierte los blobs a textos. Hay que manualmente eliminar queries de los
 * resultados de el paso II.
 */
SELECT CONCAT('ALTER TABLE ', table_name, ' MODIFY ', column_name, ' ', REPLACE(column_type, 'blob', 'text'), ';') FROM columns WHERE table_schema = 'MyDb' and data_type LIKE '%blob%';

MySQL Mysql游标

DELIMITER |

DROP PROCEDURE IF EXISTS test |
CREATE PROCEDURE test()
BEGIN
   DECLARE DONE INT DEFAULT 0;
   DECLARE vHASH_KEY          BIGINT(20);

   DECLARE CUR CURSOR FOR SELECT hash_key FROM tmp;

   -- 最後までフェッチしたときに、DONEを1にセットする
   DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET DONE = 1;

   OPEN CUR;
   REPEAT
      FETCH CUR INTO vHASH_KEY;
        IF NOT DONE THEN
         update movieinfo set deleted=1,last_deleted_chk=now() where deleted=0 and hash_key=vHASH_KEY;
      END IF;
   UNTIL DONE END REPEAT;
   CLOSE CUR;
 END;
|

DELIMITER ;

MySQL 根据模式有选择地更新Drupal的pathauto别名

UPDATE url_alias set dst = replace(dst, 'films/', 'film/') WHERE dst LIKE 'films/%';

MySQL 将属性添加到现有表

ALTER TABLE member
ADD e_mail CHAR(20)

MySQL 添加MySQL用户

CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' WITH GRANT OPTION;