Мой скрипт работает, и я могу ввести нужное значение в базу данных MySQL. Этот сценарий будет выполняться по расписанию, и мне нужно, чтобы поле идентификатора увеличивалось на 1. Я попробовал простое начальное значение 1, присвоенное переменной и ++, но значение не сохраняется в памяти, и, вероятно, есть лучший способ чтобы это произошло. Вот с чем я работаю. Мне нужно, чтобы значение в столбце ID увеличивалось до 1 каждый раз, когда этот скрипт запускает и обновляет базу данных.
[void][System.Reflection.Assembly]::LoadWithPartialName("MySql.Data")
$constr = "server=127.0.0.1;port=3306;database=mydb;user id=root;password=P@ssw0rd"
$con = New-Object MySql.Data.MySqlclient.MySqlConnection
$con.ConnectionString = $constr
$con.Open()
$cmd = New-Object MySql.Data.MySqlClient.MySqlCommand
$cmd.CommandText = "INSERT INTO test VALUES(@id, @text, @date, @datetime)"
$cmd.Connection = $con
$cmd.Prepare()
$today = get-date
$cmd.Parameters("@id").Value = 1
$cmd.Parameters.AddWithValue("@id", 1)
$cmd.Parameters.AddWithValue("@text", $totalSessions.count)
$cmd.Parameters.AddWithValue("@date", $today)
$cmd.Parameters.AddWithValue("@datetime", $today)
$cmd.ExecuteNonQuery()
$con.close()
output
mysql> select * from test;
+------+------------+------------+---------------------+
| id | text | date_val | date_time |
+------+------------+------------+---------------------+
| 1 | Text Value | 2020-04-21 | 2020-04-21 15:54:54 |
| 1 | Text Value | 2020-04-21 | 2020-04-21 15:57:05 |
| 1 | Text Value | 2020-04-21 | 2020-04-21 16:02:12 |
+------+------------+------------+---------------------+
3 rows in set (0.00 sec)