Advertisement
Guest User

Untitled

a guest
Apr 8th, 2020
590
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 2.97 KB | None | 0 0
  1. CREATE TABLE `wpDusers` (
  2.   `ID` bigint(20) UNSIGNED NOT NULL,
  3.   `user_email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ''
  4. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  5.  
  6. CREATE TABLE `wpDusermeta` (
  7.   `umeta_id` bigint(20) UNSIGNED NOT NULL,
  8.   `user_id` bigint(20) UNSIGNED NOT NULL DEFAULT '0',
  9.   `meta_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  10.   `meta_value` longtext COLLATE utf8mb4_unicode_ci
  11. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  12.  
  13. CREATE TABLE `ST_users` (
  14.   `wpid` int(11) NOT NULL,
  15.   `email` varchar(100) NOT NULL,
  16.   `wp_role` varchar(100) NOT NULL,
  17.   `role` varchar(100) AS (MID(`wp_role`, LOCATE('"', `wp_role`)+1, LOCATE('"', MID(`wp_role`, LOCATE('"', `wp_role`)+1 , 50))-1)) PERSISTENT,
  18.   `role_id` int(11) DEFAULT '1'
  19. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  20.  
  21. ALTER TABLE `ST_users`
  22. ADD PRIMARY KEY (`wpid`),
  23. ADD KEY `wpid` (`wpid`);
  24. ALTER TABLE `ST_users`
  25. MODIFY `wpid` int(11) NOT NULL AUTO_INCREMENT;
  26.  
  27. ALTER TABLE `ST_users`
  28.   MODIFY `wpid` int(11) NOT NULL AUTO_INCREMENT;
  29.  
  30. ALTER TABLE `wpDusers`
  31. ADD PRIMARY KEY (`ID`),
  32. ADD KEY `user_email` (`user_email`);
  33. ALTER TABLE `wpDusers`
  34. MODIFY `ID` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;
  35.  
  36. ALTER TABLE `wpDusers`
  37.   MODIFY `ID` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;
  38.  
  39. ALTER TABLE `wpDusermeta`
  40. ADD PRIMARY KEY (`umeta_id`),
  41. ADD KEY `user_id` (`user_id`),
  42. ADD KEY `meta_key` (`meta_key`(191));
  43. ALTER TABLE `wpDusermeta`
  44. MODIFY `umeta_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;
  45.  
  46. ALTER TABLE `wpDusermeta`
  47.   MODIFY `umeta_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;
  48.  
  49. -- TRIGGER
  50.  
  51. DROP TRIGGER ST_copy_users_v2;
  52.  
  53. DELIMITER $$
  54. CREATE TRIGGER `ST_copy_users_v2` AFTER INSERT ON `wpDusers` FOR EACH ROW BEGIN
  55.  
  56. DECLARE id_i int(11);
  57. DECLARE email_i varchar(100);
  58. DECLARE role_i varchar(100);
  59.  
  60. INSERT INTO ST_users (wpid, email, role)
  61. SELECT NEW.id, NEW.user_email
  62.      , wpDusermeta.meta_value
  63.   FROM wpDusermeta
  64.  WHERE wpDusermeta.user_id  = NEW.id
  65.    AND wpDusermeta.meta_key = 'wpDcapabilities'
  66. ;
  67.  
  68. END
  69. $$
  70. DELIMITER ;
  71.  
  72. -- INSERT USERS
  73.  
  74. INSERT INTO wpdusers (ID, user_email) VALUES (1, 'email@email.com');
  75. INSERT INTO wpDusermeta (umeta_id, user_id, meta_key, meta_value)
  76. VALUES(1, 1, 'wpDcapabilities', '_{_administrator_}_');
  77.  
  78. INSERT INTO wpDusers (ID, user_email)
  79. VALUES(2, 'email2@email.com');
  80. INSERT INTO wpDusermeta (umeta_id, user_id, meta_key, meta_value)
  81. VALUES(2, 2, 'wpDcapabilities', '_{_student_}_');
  82.  
  83. INSERT INTO wpDusers (ID, user_email)
  84. VALUES(3, 'email2@email.com');
  85. INSERT INTO wpDusermeta (umeta_id, user_id, meta_key, meta_value)
  86. VALUES(3, 3, 'wpDcapabilities', '_{_pupil_}_');
  87.  
  88. -- Return Wordpress data
  89.  
  90. SELECT wpDusers.ID, wpDusers.user_email, wpDusermeta.meta_value
  91. FROM wpDusers
  92. INNER JOIN wpDusermeta ON wpDusers.ID = wpDusermeta.user_id
  93. WHERE wpDusermeta.meta_key = 'wpDcapabilities'
  94. order by wpDusers.ID desc limit 10;
  95.  
  96. -- Return ST data
  97.  
  98. SELECT * FROM ST_users
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement